March 15, 2016 at 2:02 pm
GilaMonster (3/15/2016)
Ed Wagner (3/15/2016)
GilaMonster (3/15/2016)
Brandie Tarvin (3/15/2016)
In a change of subject, anyone else find it odd that someone would claim that the proper way of doing a SQL thing is a workaround and not a working supported solution?I find it more odd that a 'Recovery Expert' would repeatedly suggest nonsensical things.
Like telling someone to drop a filegroup they already posted they couldn't drop? Where's that "answers getting worse" thread again? 😉
More the last one. Add a file to a filegroup that's offline, then shrink a file that's not there to move its data into the newly added file, then drop the filegroup that's offline and hence can't be dropped.
Link please?
Jason...AKA CirqueDeSQLeil
_______________________________________________
I have given a name to my pain...MCM SQL Server, MVP
SQL RNNR
Posting Performance Based Questions - Gail Shaw[/url]
Learn Extended Events
March 15, 2016 at 2:15 pm
SQLRNNR (3/15/2016)
GilaMonster (3/15/2016)
Ed Wagner (3/15/2016)
GilaMonster (3/15/2016)
Brandie Tarvin (3/15/2016)
In a change of subject, anyone else find it odd that someone would claim that the proper way of doing a SQL thing is a workaround and not a working supported solution?I find it more odd that a 'Recovery Expert' would repeatedly suggest nonsensical things.
Like telling someone to drop a filegroup they already posted they couldn't drop? Where's that "answers getting worse" thread again? 😉
More the last one. Add a file to a filegroup that's offline, then shrink a file that's not there to move its data into the newly added file, then drop the filegroup that's offline and hence can't be dropped.
Link please?
March 15, 2016 at 2:30 pm
jasona.work (3/15/2016)
SQLRNNR (3/15/2016)
GilaMonster (3/15/2016)
Ed Wagner (3/15/2016)
GilaMonster (3/15/2016)
Brandie Tarvin (3/15/2016)
In a change of subject, anyone else find it odd that someone would claim that the proper way of doing a SQL thing is a workaround and not a working supported solution?I find it more odd that a 'Recovery Expert' would repeatedly suggest nonsensical things.
Like telling someone to drop a filegroup they already posted they couldn't drop? Where's that "answers getting worse" thread again? 😉
More the last one. Add a file to a filegroup that's offline, then shrink a file that's not there to move its data into the newly added file, then drop the filegroup that's offline and hence can't be dropped.
Link please?
Thank you
Jason...AKA CirqueDeSQLeil
_______________________________________________
I have given a name to my pain...MCM SQL Server, MVP
SQL RNNR
Posting Performance Based Questions - Gail Shaw[/url]
Learn Extended Events
March 15, 2016 at 2:35 pm
jasona.work (3/15/2016)
SQLRNNR (3/15/2016)
GilaMonster (3/15/2016)
Ed Wagner (3/15/2016)
GilaMonster (3/15/2016)
Brandie Tarvin (3/15/2016)
In a change of subject, anyone else find it odd that someone would claim that the proper way of doing a SQL thing is a workaround and not a working supported solution?I find it more odd that a 'Recovery Expert' would repeatedly suggest nonsensical things.
Like telling someone to drop a filegroup they already posted they couldn't drop? Where's that "answers getting worse" thread again? 😉
More the last one. Add a file to a filegroup that's offline, then shrink a file that's not there to move its data into the newly added file, then drop the filegroup that's offline and hence can't be dropped.
Link please?
Oy Vey.
Recovery Expert :crazy:
Jason...AKA CirqueDeSQLeil
_______________________________________________
I have given a name to my pain...MCM SQL Server, MVP
SQL RNNR
Posting Performance Based Questions - Gail Shaw[/url]
Learn Extended Events
March 15, 2016 at 2:48 pm
SQLRNNR (3/15/2016)
jasona.work (3/15/2016)
SQLRNNR (3/15/2016)
GilaMonster (3/15/2016)
Ed Wagner (3/15/2016)
GilaMonster (3/15/2016)
Brandie Tarvin (3/15/2016)
In a change of subject, anyone else find it odd that someone would claim that the proper way of doing a SQL thing is a workaround and not a working supported solution?I find it more odd that a 'Recovery Expert' would repeatedly suggest nonsensical things.
Like telling someone to drop a filegroup they already posted they couldn't drop? Where's that "answers getting worse" thread again? 😉
More the last one. Add a file to a filegroup that's offline, then shrink a file that's not there to move its data into the newly added file, then drop the filegroup that's offline and hence can't be dropped.
Link please?
Oy Vey.
Recovery Expert :crazy:
Uh huh. :w00t:
March 15, 2016 at 2:50 pm
jasona.work (3/15/2016)
Is this the end?Will Jeff Moden be able to stop work on his string splitter??
Will Batman be able to get rid of the bomb before it blows up?!?!
Tune in next week!
https://www.brentozar.com/archive/2016/03/splitting-strings-sql-server-2016-rescue/[/url]
😎
I ran a test comparing Jeff's DelimitedSplit8K (DS8K) to the STRING_SPLIT (SS) function. Ran against 10k rows of random delimited data. Also tested with putting output into a temp table, and using a @Bitbucket VARCHAR(MAX) variable. Average results over 5 runs:
DS8K -> @Bitbucket: 49138ms
DS8K -> TempTable: 51054ms
SS -> @Bitbucket: 4471ms
SS -> TempTable: 8871
If using 10k rows of identical data, DS8K was faster than SS.
To answer some of the questions I've seen on The Thread:
STRING_SPLIT('', ',') returns a single row of an empty string.
STRING_SPLIT(NULL, ',') returns no rows. To get a row with a NULL result value, use this function in an OUTER APPLY.
Using Jeff's test of a splitter against things that some splitters choke on, it passed all (except the NULL).
According to the docs, it returns nvarchar if any of the input arguments are either nvarchar or nchar. Otherwise returns varchar. The length of the return type is the same as the length of the string argument.
Wayne
Microsoft Certified Master: SQL Server 2008
Author - SQL Server T-SQL Recipes
March 15, 2016 at 3:09 pm
WayneS (3/15/2016)
jasona.work (3/15/2016)
Is this the end?Will Jeff Moden be able to stop work on his string splitter??
Will Batman be able to get rid of the bomb before it blows up?!?!
Tune in next week!
https://www.brentozar.com/archive/2016/03/splitting-strings-sql-server-2016-rescue/[/url]
😎
I ran a test comparing Jeff's DelimitedSplit8K (DS8K) to the STRING_SPLIT (SS) function. Ran against 10k rows of random delimited data. Also tested with putting output into a temp table, and using a @Bitbucket VARCHAR(MAX) variable. Average results over 5 runs:
DS8K -> @Bitbucket: 49138ms
DS8K -> TempTable: 51054ms
SS -> @Bitbucket: 4471ms
SS -> TempTable: 8871
If using 10k rows of identical data, DS8K was faster than SS.
To answer some of the questions I've seen on The Thread:
STRING_SPLIT('', ',') returns a single row of an empty string.
STRING_SPLIT(NULL, ',') returns no rows. To get a row with a NULL result value, use this function in an OUTER APPLY.
Using Jeff's test of a splitter against things that some splitters choke on, it passed all (except the NULL).
According to the docs, it returns nvarchar if any of the input arguments are either nvarchar or nchar. Otherwise returns varchar. The length of the return type is the same as the length of the string argument.
Article????????????
:hehe:
March 15, 2016 at 4:14 pm
jasona.work (3/15/2016)
Reading the SQL2016 release notes, and especially Jeffs' comments here[/url], I'm wondering if maybe MS didn't bother to set up their string splitter with the capability of numbering the output because they expect people to fudge around that.Perhaps setting up a temp table with an identity column and inserting the split data into that, then working from there. A kludge, but a workable kludge...
Not sure how badly this would affect performance of any procedures that use it, though...
There's no way to guarantee the order especially since we don't know how it works behind the scenes nor if it's single threaded. With that, there is no workable kludge that will be supported never mind guaranteed.
MS also closed comments on that thread... probably because of the CONNECT items that popped up. Let's hope they don't close the CONNECT item that identifies the missing enumeration column.
--Jeff Moden
Change is inevitable... Change for the better is not.
March 15, 2016 at 9:37 pm
Steve Jones - SSC Editor (3/15/2016)
WayneS (3/15/2016)
jasona.work (3/15/2016)
Is this the end?Will Jeff Moden be able to stop work on his string splitter??
Will Batman be able to get rid of the bomb before it blows up?!?!
Tune in next week!
https://www.brentozar.com/archive/2016/03/splitting-strings-sql-server-2016-rescue/[/url]
😎
I ran a test comparing Jeff's DelimitedSplit8K (DS8K) to the STRING_SPLIT (SS) function. Ran against 10k rows of random delimited data. Also tested with putting output into a temp table, and using a @Bitbucket VARCHAR(MAX) variable. Average results over 5 runs:
DS8K -> @Bitbucket: 49138ms
DS8K -> TempTable: 51054ms
SS -> @Bitbucket: 4471ms
SS -> TempTable: 8871
If using 10k rows of identical data, DS8K was faster than SS.
To answer some of the questions I've seen on The Thread:
STRING_SPLIT('', ',') returns a single row of an empty string.
STRING_SPLIT(NULL, ',') returns no rows. To get a row with a NULL result value, use this function in an OUTER APPLY.
Using Jeff's test of a splitter against things that some splitters choke on, it passed all (except the NULL).
According to the docs, it returns nvarchar if any of the input arguments are either nvarchar or nchar. Otherwise returns varchar. The length of the return type is the same as the length of the string argument.
Article????????????
:hehe:
Sure, why not. I'll even compare it to the CLR function in the resources in Jeff's article also.
Wayne
Microsoft Certified Master: SQL Server 2008
Author - SQL Server T-SQL Recipes
March 15, 2016 at 9:47 pm
WayneS (3/15/2016)
Sure, why not. I'll even compare it to the CLR function in the resources in Jeff's article also.
Just to be sure, that CLR is actually broken. It works fine for things where all elements are populated but goes a bit wonky for (IIRC) trailing delimiters and something else I don't remember.
--Jeff Moden
Change is inevitable... Change for the better is not.
March 16, 2016 at 9:19 am
Jeff Moden (3/15/2016)
jasona.work (3/15/2016)
Reading the SQL2016 release notes, and especially Jeffs' comments here[/url], I'm wondering if maybe MS didn't bother to set up their string splitter with the capability of numbering the output because they expect people to fudge around that.Perhaps setting up a temp table with an identity column and inserting the split data into that, then working from there. A kludge, but a workable kludge...
Not sure how badly this would affect performance of any procedures that use it, though...
There's no way to guarantee the order especially since we don't know how it works behind the scenes nor if it's single threaded. With that, there is no workable kludge that will be supported never mind guaranteed.
Given the nature of the operation, it is most likely to be serial / sequential. Attempting to break up the input string in order to process it in parallel would require pre-parsing to find the delimiters so as to not break up a value into two pieces. And at that point you have already done half the work so why bother with parallel processing?
If using NVARCHAR data, breaking up a value could result in invalid UTF-16 byte sequences if the break happens to split a Supplementary Character. Similarly, if using VARCHAR data with one of the 3 supported Double Byte Character Set code pages, breaking up a value could result in invalid DBCS byte sequences. It might be possible to break up the string and not need to worry about invalid byte sequences IF the position of each set is maintained and stitched back together in the original order before releasing any values. But in that case the original order is still maintained.
Hence, it seems reasonable to expect the following to be reliable:
;WITH split AS
(
SELECT vals.value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS [ItemNum]
FROM STRING_SPLIT(@InputString, ',') vals
)
SELECT *
FROM split;
However, this is just an educated guess, and proper testing (which I am not able to do at the moment) would be a better indicator than any speculation.
SQL# — https://SQLsharp.com/ ( SQLCLR library ofover 340 Functions and Procedures)
Sql Quantum Lift — https://SqlQuantumLift.com/ ( company )
Sql Quantum Leap — https://SqlQuantumLeap.com/ ( blog )
Info sites — Collations • Module Signing • SQLCLR
March 16, 2016 at 11:23 am
Shoot me, please, just shoot me...
So, several (most) of my servers have silly-small C:\ drives for the OS. This hasn't been a problem until recently, now those drives are getting nearly full (mostly from the various and sundry crap applying OS updates leaves behind.) In the past, I was able to work around this by moving things like the swap file for the OS to other drives, but now that's been done in the past and I've got nothing (easy) left to try...
I could request increasing the size of the drive (love me VMs,) but we're working on getting new servers (also VMs) with bigger C:\ drives to migrate to, so I'm not sure if it'll be worth the hassle of running that through the process...
It's only one VM at the moment really complaining, so I'm trying one other trick to clean up the old update files, but that's taking long enough (thankfully it's a QA VM) that I'm seriously thinking about just rolling back on my snapshot and saying "da heck wit' it."
Sigh...
At least I wasn't the one who originally requested the VM...
And at least it's not production VMs having this problem (right now.)
OK, ranting over, we now return you to your regularly scheduled madness and mayhem.
March 16, 2016 at 12:19 pm
jasona.work (3/16/2016)
Shoot me, please, just shoot me...So, several (most) of my servers have silly-small C:\ drives for the OS. This hasn't been a problem until recently, now those drives are getting nearly full (mostly from the various and sundry crap applying OS updates leaves behind.) In the past, I was able to work around this by moving things like the swap file for the OS to other drives, but now that's been done in the past and I've got nothing (easy) left to try...
I could request increasing the size of the drive (love me VMs,) but we're working on getting new servers (also VMs) with bigger C:\ drives to migrate to, so I'm not sure if it'll be worth the hassle of running that through the process...
It's only one VM at the moment really complaining, so I'm trying one other trick to clean up the old update files, but that's taking long enough (thankfully it's a QA VM) that I'm seriously thinking about just rolling back on my snapshot and saying "da heck wit' it."
Sigh...
At least I wasn't the one who originally requested the VM...
And at least it's not production VMs having this problem (right now.)
OK, ranting over, we now return you to your regularly scheduled madness and mayhem.
Knowing who you work for, getting new hardware could take a while. The bureaucracy could involve...well...never mind. Get the paperwork done so at least it's initiated for when you don't get your new hardware on time.
I'm reminded of someone's signature line - "A pessimist is an optimist with experience."
March 16, 2016 at 12:30 pm
Ed Wagner (3/16/2016)
jasona.work (3/16/2016)
Shoot me, please, just shoot me...So, several (most) of my servers have silly-small C:\ drives for the OS. This hasn't been a problem until recently, now those drives are getting nearly full (mostly from the various and sundry crap applying OS updates leaves behind.) In the past, I was able to work around this by moving things like the swap file for the OS to other drives, but now that's been done in the past and I've got nothing (easy) left to try...
I could request increasing the size of the drive (love me VMs,) but we're working on getting new servers (also VMs) with bigger C:\ drives to migrate to, so I'm not sure if it'll be worth the hassle of running that through the process...
It's only one VM at the moment really complaining, so I'm trying one other trick to clean up the old update files, but that's taking long enough (thankfully it's a QA VM) that I'm seriously thinking about just rolling back on my snapshot and saying "da heck wit' it."
Sigh...
At least I wasn't the one who originally requested the VM...
And at least it's not production VMs having this problem (right now.)
OK, ranting over, we now return you to your regularly scheduled madness and mayhem.
Knowing who you work for, getting new hardware could take a while. The bureaucracy could involve...well...never mind. Get the paperwork done so at least it's initiated for when you don't get your new hardware on time.
I'm reminded of someone's signature line - "A pessimist is an optimist with experience."
Actually, that would be a pragmatist.
March 16, 2016 at 12:38 pm
Lynn Pettis (3/16/2016)
Ed Wagner (3/16/2016)
jasona.work (3/16/2016)
Shoot me, please, just shoot me...So, several (most) of my servers have silly-small C:\ drives for the OS. This hasn't been a problem until recently, now those drives are getting nearly full (mostly from the various and sundry crap applying OS updates leaves behind.) In the past, I was able to work around this by moving things like the swap file for the OS to other drives, but now that's been done in the past and I've got nothing (easy) left to try...
I could request increasing the size of the drive (love me VMs,) but we're working on getting new servers (also VMs) with bigger C:\ drives to migrate to, so I'm not sure if it'll be worth the hassle of running that through the process...
It's only one VM at the moment really complaining, so I'm trying one other trick to clean up the old update files, but that's taking long enough (thankfully it's a QA VM) that I'm seriously thinking about just rolling back on my snapshot and saying "da heck wit' it."
Sigh...
At least I wasn't the one who originally requested the VM...
And at least it's not production VMs having this problem (right now.)
OK, ranting over, we now return you to your regularly scheduled madness and mayhem.
Knowing who you work for, getting new hardware could take a while. The bureaucracy could involve...well...never mind. Get the paperwork done so at least it's initiated for when you don't get your new hardware on time.
I'm reminded of someone's signature line - "A pessimist is an optimist with experience."
Actually, that would be a pragmatist.
Touche. I know I have enough experience to be pessimistic about things that involve bureaucracy. More and more things are going that way.
Viewing 15 posts - 53,086 through 53,100 (of 66,712 total)
You must be logged in to reply to this topic. Login to reply