The Voice of the DBA is a moniker that Steve Jones has adopted for his writing and work with SQL Server. It came about after functioning as the editor of SQLServerCentral for many years as a title for his podcast efforts in 2008.
Steve has been working with SQL Server since 1991, when he became the accidental DBA for a SQL Server v4.2 system running on OS/2 1.3. It was an unstable combination that lead to Steve working almost 400 hours one month as the system needed constant babysitting and there were upgrades through SQL Server 4.2a and 4.2b, OS/2 2.0 and then v2.1. Eventually the system migrated to Windows NT 3.1 Advanced Server, and Steve could get some sleep.
Since that time Steve has worked with all versions of SQL Server at various jobs and been greatly pleased with the enhancements and growth of the product. He feels it is an outstanding database platform that is suited to a wide variety of needs and situations.
In 2001, Steve founded SQLServerCentral.com with Brian Knight, Andy Warren, and three other partners that were bought out the next year. In 2002, Steve left his job with Peoplesoft to manage SQLServerCentral full time as editor, publisher, and writer. Andy, Brian, and Steve continued to manage and grow SQLServerCentral until 2007 when it was sold to Redgate Software along with Database Weekly (then Database Daily). At that time Steve went to work for Red Gate and has continued his work with SQLServerCentral and Redgate since that time.
Steve currently is an advocate for Redgate Software, and engages with customers and marketing. He has also been awarded as a Microsoft MVP 14 times.
Steve regularly speaks at SQL Saturday and other technical events on career and technical topics, and enjoys meeting and interacting with the SQL Server community. If you are interested in inviting him come speak at your event, please feel free to contact him through email, Twitter, or Facebook. You can also get the text of his keynote talks.
Steve was first awarded the Microsoft MVP award in 2008 and has been renewed 3 times for his many contributions to the community. Steve holds an MCSE from NT 4.0, an MSITPro in SQL Server, and numerous other MCP certifications in SQL Server. He also has an undergraduate degree from the University of Virginia in Economics.
Photos (for use at other sites)
Hi Steve, sorry to post this here, I couldn’t see an email contact.
My name is Mark.
I noticed that you tweeted one of my favorite articles from Seth Godin’s Blog, “To overcome an irrational fear…”
I was hearing from my readers that they wanted something more in depth about the topic so I went ahead and created this post:
It discusses some background neuroscience and a practical system for coping with anxieties.
If you have time I’d love for you to check it out, and if you like it, it would be awesome if you could share it or maybe leave a comment.
Mark Rogers Ph.D
As above, I do not see where to leave a reply on the ‘correct page’
And I do realise this is a very late reaction on the article:
Posted on June 7, 2011
Combinations and Permutations
But I still want to put in my 2 cents.
The solution should be more Datadriven. Why if there is a number of items and we want to see combinations of items, each item is either present or it is not present. So a item can be represented as a bit. This immediatly leads to a simple result. The number of items is equivalent to a number of bits.
The max number of combinations is (2^n).
See code below to show all combinations of a number of items.
Define the number of items. (Tested up to 20).
Define the number of items which should be in the resulting combinations.
The code is kept generic, but can easily be made more specific.
The code can fairly easy be extended to show the actual items for a specific case.
(For example possible color combinatons).
— Generic decimal to binary function.
— This function is removed at the end of this script.
CREATE FUNCTION DecimalToBinary_REMOVE_afterwards (@Input bigint)
RETURNS varchar(255) AS
DECLARE @Output varchar(255) = ”
WHILE @Input > 0 BEGIN
SET @Output = @Output + CAST((@Input % 2) AS varchar)
SET @Input = @Input / 2
— Ben Brugman
— Aka: Stef ten Bras
— Show all combinations of a number of items.
— A choice can be made which number of items should be present in the result combinations.
— Can be easely expanded to show the actual items.
— Items can be code or named. (For example a number of colors).
DECLARE @number_of_items int = 20 — supply the number of items.
DECLARE @items table(item_count int)
INSERT INTO @items values(0),(1),(19),(20) — How many items should be in the combination.
— Here only combinations with 0, 1, 19, 20 items are presented.
— Result: 42 Combinations. 42, the Answer to the Ultimate Question of Life, the Universe and Everything.
— Another ‘testset’
— set @number_of_items = 13
— delete @items;INSERT INTO @items values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13) — How many items should be in the combination.
— 13 items this results in 8192 Combinations.
— Another ‘testset’
— set @number_of_items = 6
— delete @items;INSERT INTO @items values(0),(1),(2),(3),(4),(5),(6),(7),(8) — Any number of items is ok.
— 6 items this results in 64 Combinations.
— Another ‘testset’
— set @number_of_items = 10 — For example 10 colors
— delete @items;INSERT INTO @items values (2),(3),(4),(5) — Pick 2 to 5 colors.
— 10 colors pick a 2 to 5 gives 627 combinations.
DECLARE @max_row bigint = power(2, @number_of_items)
SELECT @number_of_items Number_of_items, @max_row Maximum_number_of_rows
L0 AS(SELECT 0 AS c UNION ALL SELECT 0 UNION ALL SELECT 0 UNION ALL SELECT 0), — 4
L1 AS(SELECT 0 as x FROM L0 A, L0 B, L0 C, L0 D), — 4 ^4 = 256
L2 AS(SELECT 0 as x FROM L1 A, L1 B, L1 C, L1 D), — (4 ^ 4) ^4 = 4 Giga
L9 AS(SELECT *, row_number() OVER(PARTITION BY x ORDER BY x )-1 as nr FROM L2), — voeg rijnummers toe
LX AS(SELECT top (@max_row) ‘00000000000000000000000000000000’+convert(varchar(80),dbo.DecimalToBinary_remove_afterwards(nr)) Combinations, nr FROM L9 ORDER BY nr),
LXI AS(SELECT SUBSTRING(combinations, datalength(combinations)-@number_of_items+1,@number_of_items+1) combinations, nr FROM LX),
LXII AS(SELECT * FROM LXI WHERE (DATALENGTH(combinations)-DATALENGTH(replace(Combinations,’1′,”))
in (SELECT * FROM @items))) –How many items must be present in the endresult.
SELECT * FROM LXII
— comments :
— L0..L9 Is to generate a large number of rows each with a row_number (minus 1).
— LX Limits the result set to the maximum number of combinations.
— Makes the combinations visible. Each item has a position. 1 present, 0 absent.
— LXI Limits the resultlength of the string.
— LXII Only specific combinations are show. (Specific number of items)
DROP FUNCTION DecimalToBinary_REMOVE_afterwards
I wanted to share with you the Zero to SQL project I have been working
on. Aimed at those just getting started with writing queries, I put
together a book and site the help folks go, well from zero to SQL.
The book is comprised of twenty lessons and while many RMDBS systems
could be used, I focus on SQL Server and my example database was
tested with SQL Server.
I want to share you a free Kindle (.mobi file) version of my book. I
invite you to download it and let me know what you think.
I am running a free promotion on Amazon from January 30th to February
1st. I thought you might be interested in announcing the free run to
your readers on the first day, a great way for you to give something
of value to your readers for free. Any social media mention is
appreciated. If you are interested, let me know and I will send you
out a reminder the first day of the free run.
Here is a link to the book on Amazon: https://www.amazon.com/dp/B01N7TWW4X
Please let me know if you have questions.
Have a great day!
Pingback: 100 Posts! – SQL Jana
Glad to see you’ve been blogging and glad I’ve inspired you.
Hi Steve, I am new to this Filetable concept and I have a requirement like archive file stream data from once place to another place. How to move files a file directory to another directory programmatically (Through SQL sript)
Please post more details at https://www.sqlservercentral.com/Forums/. That’s a better place to ask a question and get an answer. Choose your version and the administration forum for the question
Hi Steve, Good morning.
I have posted my query in forum https://www.sqlservercentral.com/Forums/.
Could you please look my query and help me?
Thanks in advance.
Pingback: CICD and Databases | destination data
What did the bill look like the next month? 🙂 Would love get feedback on the experience with Serverless in SQL DB..
I’ll try to write up a few notes on what this has looked like across a few months.
Hi Steve, have followed you commentaries for years. Thanks all the insight! I recently posted on SQLServerCentral and go more than I bargained for. When youyr server sent a notification that there were responses, I also got a message included with credit card number, DOB and other personal information. Not sure if it is real or fake but wanted to give you a heads-up and see if you would like me to forward the email.
Please send it to the webmaster (webmaster@) for SQLServerCentral and we’ll take a look. Thanks, Scott.
Hello! Our SQL job run is taking longer than 30 minutes (over 1 hour). We just moved to a private cloud where our virtual machines sit.
Please don’t ask questions here. http://www.sqlservercentral.com/forums is the best place.
Any idea what could cause these jobs to take longer to run? The VMs were lifted and shifted to the private cloud and sit on new hardware. Looking for some insight on what could be the issue.