Alteryx Designer

Share your Designer product ideas - we're listening!
Register for the upcoming Live Community Q&A Session - and don't forget to submit your questions for @DeanS regarding the future role of analytics here.

The Default Value For a 1073741823 V_String is ridiculous and never useful. Change it!

Who needs a 1073741823 sized string anyways?  No one, or close enough to no one.  But, if you are creating some fancy new properties in the formula tool and just cranking along and then you see that your **bleep** data stream is 9G for nine rows of data you find yourself wondering what the hell is going on.  And then, you walk your way way down the workflow for a while finding slots where the default 1073741823 value got set, changing them to non-insane sized strings, and the your data flow is more like 64kb and your workflow runs in 3 seconds instead of 30 seconds.  

 

Please set the default value for formula tools to a non-insane value that won't be changed by default by 99.99999% of use cases.  Thank you.

 

 

9 Comments
Alteryx
Alteryx

I'm puzzled by your observation that changing the limit on a variable width string changes the performance of a workflow. If you were talking about fixed sized strings, I'd understand. Fixed size strings (String and WString types) always use the size you say they take. Variable size strings (V_String and V_WString) use a few bytes to give the size, then use just the number of bytes the string actually needs. The limit is there only as a backstop; so you get a warning if the workflow does something crazy. Yet you observe that changing the upper limit changes the performance of the workflow. Can you show us an example of this? I wonder if there is something more going on here.

Alteryx Certified Partner

.

Alteryx Alumni (Retired)
Status changed to: Duplicate
 
7 - Meteor

Being able to set default values per workflow and/or per data stream would be much more useful than just changing the default.

Alteryx Partner

Duplicate of which previous idea? Can you please share the link?

Moderator
Moderator
Status changed to: Comments Requested

Thank you all for contributing to this idea and posting on the Alteryx Community!

 

Your idea is something we may be interested in pursuing, but we need a little more detail to conceptualization the impact fully. Would you be able to provide us an example of how the V_String value effects the performance of your workflow?

 

Alteryx Partner

I have never noticed it performance wise. Is it crazy huge yeah but it's exactly right what @ChrisK said "Fixed size strings (String and WString types) always use the size you say they take. Variable size strings (V_String and V_WString) use a few bytes to give the size, then use just the number of bytes the string actually needs."

 

If there is a performance issue than that needs to go to support. 

11 - Bolide

@ChrisK -

@KylieF 

 

I knew I'd seen this, but then couldn't replicate it.  But then I did.  And then I saw a star on this thread this morning so I thought I'd update. 

 

The problem comes if you convert a V_String to a String (i.e., use a select tool change up), and then *forget* to change your size to a realistic value.  In my instance, I've still got a bunch of 32 bit oracle instances I need to write to, and they bork when I try to pass them V_String values (I only get 1 character written to the database).  So I will frequently need to tweak from V_String to String, but if you do it midstream and don't reset your sizes, you get the performance hit I referred to.  Probably an edge case, but other people may have problems writing to a database with V_String that I don't know about.   

 

Weird.  Cannot attach a workflow, but see the picture.  Easy to replicate. 

 

brian

VStringToSTringSnapshot.png

 

Alteryx
Alteryx
I understand! So it's more that the select tool just slides a ridiculous value to the size of a fixed size string. I wonder if UX might have a suggestion for how to flag it. What do you think if you were to change from V_String to String, and if the size is over some limit (16 K for example), the field just goes empty with a red border and you are required to give a value yourself. (You can give whatever you like, but then it's on you.)