pointers, solutions and toolbox scripts for the SQL DBA
not intended to replace msdn, common sense or oxford commas

Wednesday, December 20, 2017

Our SQL Server 2017 Administration Inside Out fun author survey

I was honored to be on the author team of the new SQL Server 2017 Administration Inside Out book by Microsoft Press (out in Feb 2018). While the hard work was done and 700+ pages of final edits were still being passed around, the team of four authors (and our beloved tech editor, Louis) joined me in a fun interview-style blog post.

The questions were answered in late November-early December, as we were finishing up the last edits and getting the book ready, finalizing standards, and keeping up with the astounding/frustrating amount of changes happening to the product and surrounding tools! It's not just the Azure environment that is rapidly improving and maturing...



You can pre-order the book today at the Microsoft Press store or Amazon or your favorite bookseller.

The writing team (in cover order):

Thanks in advance for reading our fun little diversion from our final edits!

1.What music if any did you listen to while writing? 

William Assaf: A lot of Black Keys, Clutch, Disparition, the Dunkirk soundtrack, Thank You Scientist, and more stuff in and around those.

Randolph West: EDM.

Sven Aelterman: “I’d do anything for love (but I won’t do that).” For some unknown reason, my wife kept humming that tune in the background.

Mindy Curnutt: If I was writing from home I had Alexa spin me up some random Coffee House music, she's pretty good at it.

Louis Davidson: Nothing particular, usually older, upbeat music like Led Zep, The Who, Rat Pack, etc. on my Sonos and I can rattle the house. Sometimes though, you gotta turn it off and pay deep attention. (And sometimes you crank up Will Smith and get jiggy with it when you are just ready to be done, but there is more work left.)


2.Where did you do most of your writing, and what was your usual setup? 


William Assaf: At home, with a three-monitor display. Usually had Word open on the left, OneNote and a web browser on the middle, and an RDP session to an Azure VM running the latest SQL Server instance right.

Randolph West: Under the bed, in a veil of tears. Sometimes on the couch while watching Supernatural on TV.

Sven Aelterman: I did most of my writing in Microsoft Word, between page 1 and 70.

Mindy Curnutt: Most of my writing was done on the 3rd floor of the Richardson, TX library (the quiet floor). I tried Starbucks, but it was way too noisy, and at home there are way to many distractions. Once at the library, the only distraction I could find was to walk around looking at what books they had, and that got old after awhile. You know you can bring coffee in the library with you?

Louis Davidson: I have a home office, where I do most of my work. It is great because it it the same computer I work on daily, with 1 21:9 and one 16:9 monitor connected to a Surface Pro 4 to work on, but sometimes it can be a drag sitting where you work all day as well. 


3.Did you learn anything about your personal writing skills or habits while working on the book? 

William Assaf: During the writing of the book, I became incapable of correctly typing certain wrods like authetnication and premisis, due to overuse.

Randolph West: MacBook Pro for life! I learned that I don’t like Microsoft Word.

Sven Aelterman: About the same as what I learned while writing the answers to these questions: give me a deadline, and I’ll find a way to push it back.

Mindy Curnutt: Yeah, I think I'm better at just focusing on one chapter at a time. Writing a book is a BIG commitment.

Louis Davidson: I was tech editor, so I didn’t directly write any of the text, just comments about it. Having written several books though, it is very similar. My worst habit that is most trouble is that I can’t stop when I have a project. So I get a chapter from a writer, and I say I need a week, but then I am up until 3 trying to finish!  


4.What's your favorite new feature of SQL Server 2017? 

William Assaf: The WSFC-less Availability Groups. So many uses, so much easier. Combined with automatic seeding, AG's are getting pretty close to point-and-click.

Randolph West: Linux support. Adaptive query processing. Linux support.

Sven Aelterman: Without a doubt, the fact that Reporting Services is a separate download. Everyone loves an additional installer.

Mindy Curnutt:  Resumable online index rebuilds!! How many times could I have used this. I wonder if Ola's updated his scripts yet to take this into consideration?

Louis Davidson: I am into database coding/designing mostly, so graph tables are highest for sure. They are pretty rudimentary now, but the future is very bright in what they are adding in a future version.


5.Now that the book is (almost) done, what now for your spare time? 

William Assaf: There's still edits, but... I have to catch up on a lot of family time, wife time, and me time (mostly video games, books, scotch, and a gym membership). Some training and online videos related should be coming soon.

Randolph West: Now I can go back to the stuff I abandoned in June, like spending time with my husband, as well as acting, directing, feeding my dog...

Sven Aelterman: I can’t help but look forward to reading all the glowing reviews on Amazon.com. And writing errata. And cursing at Microsoft for changing something else in Management Studio 17.4325.1 or Azure SQL Database that makes the book look like we wrote it in the last century.

Mindy Curnutt: Spare time? Hahahahaaaa (cough, cough). I'm choking. Hold on a minute....

...

...

No spare time. Never was spare time. What exactly does that feel like anyway?

Louis Davidson: Well, I am standing in a queue at Disney World writing these interview answers, though that can’t last forever, since magic comes at a price, and that price is cash. But after the holidays it is back to writing blogs, articles, and perhaps my own new book.

6. Thinking back, what parts of your career up to now specifically came in handy when writing this book? 

William Assaf: The recession pushed me into consulting in 2007, and now I spend most my time with health checks and performance tuning. Then, I spend time writing up recommendations documents, investigation results, knowledge transfer, etc. Consulting has prepared me for book writing, it seems.

Randolph West: Copy editing. And the time I worked at a student radio station, when I would pull a 36-hour shift. As for content, dropping tables in production was hugely helpful in knowing what not to do.

Sven Aelterman: Several academic courses come to mind, including Procrastination 101 and Delegating 666 (an advanced graduate level course!). Professionally speaking, more than likely the experience of two months of troubleshooting a SQL Server 2000 failover cluster only to find the SCSI interconnect cable was faulty.

Mindy Curnutt: The painful experience of College Finals.

Louis Davidson: Being a Microsoft MVP, really, and attending a lot of sessions there and at PASS Summit and SQL Saturdays. I mostly code, but I always am listening for stuff to tell coworkers and blog readers about. I try out most stuff myself already, especially when it is inside the box (meaning features where you need only one server to try it out.)


7. Aside from SQL Server Inside Out 2017 (pre-ordered), obviously, what is a cool gift idea for a SQL DBA this holiday season? 

(Sorry if this question is a little late for shipping deadlines...)

William Assaf: I'm a big fan of DonorsChoose.org, a site that helps you crowd-fund projects to improve local classrooms. My kid and I pick out classrooms every year to help. Make a donation to a local classroom with a cool project in their honor, or buy them a gift card. Also, I can personally recommend Randolph’s idea (https://twitter.com/william_a_dba/status/935349132583202817).

Randolph West: A wine cooler, containing a bottle for each day of December. I call it an Advent Cooler. https://www.amazon.com/3-Door-Back-Bar-Cooler-Refrigerator/dp/B01N3AG07I/ 

Sven Aelterman: For DBAs who think the cloud is a fad: http://jobs.tacobell.com/

For DBAs who think the cloud is a real: https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=umbrella

For significant others of DBAs (can’t leave them out!): https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=kleenex&rh=i%3Aaps%2Ck%3Akleenex

Mindy Curnutt:  If you have Grandparents (or parents) that aren't tech savvy, there are these really cool photo frames that you can control through the Cloud. I'm planning on getting one for my Grandma.
https://www.amazon.com/Pix-Star-Digital-FotoConnect-Providers-Android/dp/B0056HNTAU

Louis Davidson: Hmm. Lego always, but something good (DBAs make too much money for something simple. Maybe the Saturn rocket? https://shop.lego.com/en-US/LEGO-NASA-Apollo-Saturn-V-21309. Or Lego Millennium Falcon. https://shop.lego.com/en-US/Millennium-Falcon-75192. Personally, I am low on space for Legos, but I definitely want Lego BB8 https://shop.lego.com/en-US/BB-8-75187. 





Tuesday, December 19, 2017

Start/Stop Group of Azure RM VM's

For testlab purposes, I often have a group of Azure VMs to manually spin up/spin down at once. I've had this script in use for a while and decided I'd comment it up and share.

The SQL Server Availability Groups template in the Azure VM Gallery, for example, creates five VMs in a resource group. Who wants to use the Azure portal in browser to click, wait, x5? And if you try to start/stop too many VMs at a time, they will error out.

PowerShell provides! Since the Start-AzureRMVM and Stop-AzureRMVM cmdlets wait for each VM to finish changing state, it'll take 2-3 minutes per VM, but it's launched in one manual step.
Note, there's also built-in Azure functionality to shut down VMs on a schedule, no coding required. In this case, the use case for this script is to start up my five VMs for a test Availability Group manually, and bring them down when I'm done with my lab. I may also set up the auto-shutdown as insurance that I won't accidentally leave the VMs running.
The below script is quite verbose and well-commented, including the Setup block to get the required module and log you into Azure. You could certainly shorten and simplify the script, but my goal here is readability, and repeatability. (If you have a suggestion on how this can be improved, I'm all for it.)

Specify a resource group name in $ResourceGroupName, and a list of  VM names in $VMs. Important note here: when you have a cluster of VMs, you may want to have them start up and shut down in a specific order. The below example shuts down the domain controller VMs last, and starts them up first.
#Launch VS Code as Administrator

<#
Invoke-Command -script {Install-WindowsFeature -Name "Failover-Clustering" } `
-ComputerName SQLDEV11, SQLDEV12, SQLDEV14, SQLDEV15
Invoke-Command -script {Install-WindowsFeature -Name "RSAT-Clustering-Mgmt" } `
-ComputerName SQLDEV11, SQLDEV12, SQLDEV14, SQLDEV15
Invoke-Command -script {Install-WindowsFeature -Name "RSAT-Clustering-PowerShell" } `
-ComputerName SQLDEV11, SQLDEV12, SQLDEV14, SQLDEV15
#>
#Install-Module SQLSERVER -Force -AllowCLobber 
#Import-Module SQLSERVER

#Must run on the primary node
#TODO: configure initial variable values.

Write-Output "Begin $(Get-Date)"
#Setup: TODO Configure these
$PrimaryReplicaName = "SQLSERVER-0"
$PrimaryReplicaInstanceName = "SQL2K17" #Named instance or DEFAULT for the default instance
$SecondaryReplicaName1 = "SQLSERVER-1"
$SecondaryReplicaInstanceName1 = "SQL2K17" #Named instance or DEFAULT for the default instance
$AvailabilityGroupName = "WWI2017-AG"

#Inventory and test
Get-ChildItem "SQLSERVER:\Sql\$($PrimaryReplicaName)\$($PrimaryReplicaInstanceName)\AvailabilityGroups\$($AvailabilityGroupName)\AvailabilityReplicas\" | Test-SqlAvailabilityReplica | Format-Table

   $AGPrimaryObjPath = "SQLSERVER:\Sql\$($PrimaryReplicaName)\$($PrimaryReplicaInstanceName)\AvailabilityGroups\$($AvailabilityGroupName)\AvailabilityReplicas\$($PrimaryReplicaName+$(IF($PrimaryReplicaInstanceName -ne "DEFAULT"){$("%5C")+$PrimaryReplicaInstanceName} ))"
   $AGPrimaryObj = Get-Item $AGPrimaryObjPath 
   $AGSecondaryObjPath = "SQLSERVER:\Sql\$($PrimaryReplicaName)\$($PrimaryReplicaInstanceName)\AvailabilityGroups\$($AvailabilityGroupName)\AvailabilityReplicas\$($SecondaryReplicaName1+$(IF($SecondaryReplicaInstanceName1 -ne "DEFAULT"){$("%5C")+$SecondaryReplicaInstanceName1} ))"
   $AGSecondaryObj = Get-Item $AGSecondaryObjPath


   
#Set replicas to synchronous before planned failover
        
    Set-SqlAvailabilityReplica `
    -Path $AGPrimaryObjPath `
    -AvailabilityMode SynchronousCommit `
    -FailoverMode "Manual" `
    -ErrorAction Stop
    Set-SqlAvailabilityReplica `
    -Path $AGSecondaryObjPath `
    -AvailabilityMode SynchronousCommit `
    -FailoverMode "Manual" `
    -ErrorAction Stop

#Check for when replicas are synchronized.
Do {
$AGSecondaryObj.Refresh()
$CurrentSync = ($AGSecondaryObj | Select RollupSynchronizationState | Format-Wide | Out-String).Trim()
IF ($CurrentSync -ne "Synchronized") { 
        Write-Output "Waiting for Synchronized state before failover, still $($CurrentSync)"
        Start-Sleep -s 2 
        }
} Until ($CurrentSync -eq 'Synchronized')

#Perform failover
Write-Output "Beginning Failover $(Get-Date)"
Switch-SqlAvailabilityGroup `
    -Path "SQLSERVER:\Sql\$($SecondaryReplicaName1)\$($SecondaryReplicaInstanceName1)\AvailabilityGroups\$($AvailabilityGroupName)\" `
     -ErrorAction Stop `
    #Only include the next line if it is a forced failover
    #-AllowDataLoss -Force
Write-Output "Failover Complete $(Get-Date)"
Start-Sleep -s 10 #Allow failover to resolve

#Return secondary replica to Asynchronous sync
#Note that the values here of Primary and Secondary1 are flipped, because the variables predate the failover.
Invoke-Command -script { `
param($SecondaryReplicaName1, $SecondaryReplicaInstanceName1, $AvailabilityGroupName, $PrimaryReplicaName, $PrimaryReplicaInstanceName)

 Set-SqlAvailabilityReplica `
-Path "SQLSERVER:\Sql\$(($SecondaryReplicaName1))\$(($SecondaryReplicaInstanceName1))\AvailabilityGroups\$(($AvailabilityGroupName))\AvailabilityReplicas\$(($SecondaryReplicaName1)+$(IF(($SecondaryReplicaInstanceName1) -ne "DEFAULT"){$("%5C")+(($SecondaryReplicaInstanceName1))} ))"  `
-AvailabilityMode asynchronousCommit `
-ErrorAction Stop
    Set-SqlAvailabilityReplica `
-Path "SQLSERVER:\Sql\$(($SecondaryReplicaName1))\$(($SecondaryReplicaInstanceName1))\AvailabilityGroups\$(($AvailabilityGroupName))\AvailabilityReplicas\$(($PrimaryReplicaName)+$(IF(($PrimaryReplicaInstanceName) -ne "DEFAULT"){$("%5C")+(($PrimaryReplicaInstanceName))} ))"  `
-AvailabilityMode asynchronousCommit `
-ErrorAction Stop

Get-ChildItem "SQLSERVER:\Sql\$($SecondaryReplicaName1)\$($SecondaryReplicaInstanceName1)\AvailabilityGroups\$($AvailabilityGroupName)\AvailabilityReplicas\" | Test-SqlAvailabilityReplica | Format-Table
} -ComputerName $SecondaryReplicaName1  -Args $SecondaryReplicaName1, $SecondaryReplicaInstanceName1, $AvailabilityGroupName, $PrimaryReplicaName, $PrimaryReplicaInstanceName

Write-Output "End $(Get-Date)"


This is version of the script updated for Resource Manager VMs. For classic VMs, I have a similar script in a blog post here.

Monday, December 04, 2017

Attracting Non-Technical Speakers to Your SQLSat Events

Fellow DBA and community leader Peter Shore of the Columbus SQL PASS UG and SQLSat Columbus OH asked me via Twitter, "What is the best way for us to have a discussion about how you handle SQLSatBR? I am curious about the none data platform tracks, how you attract other disciplines and executives etc." My answer was the draft of a blog post... and a few email and Twitter exchanges later, here we are. Thanks for the blog inspiration, Peter!

This blog post is for SQLSaturday organizers, session selectors, and schedule-masters. 

---------------------

Professional development and IT leadership talks at past SQLSat Baton Rouge

At SQLSaturday Baton Rouge we try to provide non-technical content for two major audiences: career-minded IT professionals, and also IT leadership

The former is common at many SQLSats, but the latter we find is invaluable to our success as a small town SQLSaturday event in Baton Rouge. In a city of less than 500,000, we had have a 400-600+ person SQLSat event for the last 7+ years because of a broad session lineup.

First off, advertise the tracks you want to fill in your initial Call for Speakers. Emphasize in your Call for Speakers announcement emails that you have a desired track list, and it includes nontechnical tracks. Advertise in your event when announcing it to local user groups, schools, and companies: "Bring your boss! We have a track for IT Manager and CIOs". And yep, these tracks are fairly well attended. Not always full rooms, but we get a critical mass of people for good audiences and conversations. 

Firstly, jobseekers/career switchers/students is an obvious audience, they're probably already in attendance at your SQLSaturday event. It's the IT Management/CIO-level content that we try to add too, because that attracts net new attendees and even more importantly the decision-making crowd, which increases your event's attractiveness and ROI for the sponsors

So how do you get speakers for these two audiences/tracks?

Well, marketing budgets aren't exactly a thing. We remain mostly attended by word-of-mouth, we believe. We have a slick one-pager (feel free to copy), and we've put it in various break rooms, coffee houses, bulletin boards, etc. Reach out to local colleges and universities of course. But to get speakers during your Call for Speakers campaign, you need to reach other motivated professionals like yourself. Start with social media platforms of course, Slack, Twitter, LinkedIn, are good starts. But as a community event organizer and/or SQL Server user group leader, try to become aware or at least reach out to network with organizers of user groups for .NET, SharePoint, VMWare, game developers, Women in Technology, Agile development, IT Pro, etc. 

To fill non-technical tracks for career-minded professionals at your SQLSaturday events, the formula is takes some legwork, but is probably familiar to you:
  1. You can encourage your speakers to submit non-tech topics, most professionals do already have tips for being interviewed, career growth tips, lifehacks type of presentations. In general, you should always advertise a list of tracks/topics to fill during your Call for Speakers.
  2. We encourage these types of professional talks at our annual networking night, and provided some sample topics here.
  3. Reach out to leadership development and young leaders groups. Reach out to local versions of "Shark Tank", young entrepreneurs and similar groups, make sure they know there's a local conference with a track for their topics.
  4. For topics geared towards resumes, interviews, and job hunting, reach out to local HR departments or the Society for Human Resources Management (SHRM).
  5. Reach out to Toastmasters International. They're great for this sort of thing, and can likely provide either a sample Toastmasters meeting or communications-focused sessions.
I bet there are presences from both SHRM and TM (or similar) in most towns in the USA. Both of these groups have conferences of their own where they give talks on interviewing/being interviewed, career development, professional communications, etc.  (Keep in mind some speakers in these organizations may be used to getting paid for speaking - be professional and polite about telling them that your conference is a free conference.) 


To fill tracks for the IT Management/CIO track, here are some ideas for recruiting sessions and speakers. At SQLSatBR, we've had IT Management/CIO/Executive tracks at the last three events. Take a look to see what kind of speakers and sessions we picked in the past, and feel free to reach out to those speakers for your own events.
Presentations for those who perform interviews can be especially useful for the IT Management/CIO-level crowd, especially if you can find someone (like my wife and most HR professionals) who know the law around what you can/cannot ask in an interview, not just to be EOE compliant, but to avoid discrimination. IT leadership will definitely want (need?) to attend that. Some IT professionals may also give presentations on technical interview tips.

Other good ideas for tracks for the IT Management/CIO crowd are "strategic" (aka salesy) presentations by Microsoft or other vendors, without being too technical (or too salesy). Reach out to local IT consulting firms or offices. They probably already run their own "CIO luncheons" or "executive roundtable" meetings. The head of my employer, an IT consulting firm, pulled in all the CIOs he knew (many of which were customers) and honored them with appearance on a panel about "cloud strategy" or "modern IT strategy" or "hybrid datacenters." CIOs eat that stuff up.

Inviting local IT Managers/CIOs to be on a panel can be a nice honor, especially if you advertise it as such. Don't be afraid to organize your own panel, perhaps facilitate it yourself with questions about IT strategy, future trends, past successes/mistakes, etc. A good panel discussion may be 50/50 panelists/audience Q&A. It's not difficult at all, in fact we do a similar panel-style presentation around Jobs in IT

Finally, if you're looking for sessions to place in a CIO track, Business Intelligence talks work well, especially presentations for "executive dashboards". PowerBI sessions, as long as they are not too technical, would be very popular for a IT Management track. Anything on data warehousing, data lakes, "big data", or presentation-layer stuff (like SSRS mobile reports) would be appropriate. 

So fill non-technical tracks for the IT leadership/decision-maker crowd:
  1. Reach out to SHRM or other organizations for HR professionals. 
  2. Reach out to IT consulting firms, especially ones that do Business Intelligence consulting. 
    1. Reach out to anyone in your town who has ever presented a "CIO Executive Summit" or similar.
  3. Reach out during your call for speakers to local chapters of the AITP, ACM, itSMF, VMWare, IT Pro, and other technology chapters. Again, something I've encouraged for a long time - involve other community user groups in your SQLSaturday event, including but not limited to the .NET group.
  4. Reach out to anyone in your town who does "leadership consulting" or "executive coaching", they'd probably jump at the opportunity to present and work in a subtle pitch for their own services. Be sure they are familiar with the format and expectations of your event.
  5. Consider organizing your own Panel discussion of local IT leadership or thought leaders.
  6. Consider some Business Intelligence sessions for a CIO track, especially sessions involving executive dashboards, or BI sessions that are more strategic or design-oriented in nature.
Let me know if you have any questions, and best of luck organizing your next SQLSaturday event!


Careers in IT Panel discussion at SQLSatBR 2016

Monday, November 06, 2017

SQLSat Organizers and UG Leaders Meetings at PASS Summit - Tips and Tricks notes

At the SQLSat Organizers and UG Leaders Meetings at PASS Summit meetings last week, we were given an opportunity to share "tips and tricks" with other leaders, and I had the opportunity to.

Now that I'm home (despite a thrilling late-night sprint through IAH to make a connecting flight) and starting to get caught up on sleep and email, here's my notes I typed up, annotated with some links.

Happy to share and thanks for the followup questions afterwards, let me know if you have any more.

SQLSat Organizers Meeting

  • First off the Microsoft global sponsor is a big deal, I have strong positive opinions in that, thank you for that.
    • I am a big-budget SQLSat organizer, I think this is a really good thing. Bravo Microsoft.
  • Broad set of topics, “for everyone in IT”
    • We pull in 400-600 each year for past 5 years
    • We invite the developers, sysadmins, students, IT managers and CIO's, SharePoint…
    • More ROI for sponsors, a bigger audience that includes decision makers
  • Join the Empire - Fundraising for foundation (for local schoolsystem?)
    • Call your local chapter of the 501st Legion - star wars
    • They'll help you raise money for whatever charity you pick
  • Jambalaya is cheap
    • Rice, meat, spices, salad, sides, plates, $4-5/head
    • Similar dishes: arroz con pollo, paella, fried rice, shawarma and rice
    • It's also gluten free!
  • R is hot, what else is?
    • Example: Chris Hyde at capacity in 60-person room for R
    • Pay attention to the hottest topics if you have opportunity use your bigger rooms
  • Speaker goodie bags
  • Sticker game - part of vendor ROI
    • We give stickers to the vendors with instructions to give them out to folks who actually show interest
    • Attendees have to collect 4 out of 5 stickers, n-1 on a game sheet
    • They get to keep the one for their field, the stickers have said in the past, "I'm building" or "Performance Tuning" or "rising", so it's SQL or Careers or Code or Servers or BI
    • About $300-400 for five 500-count rolls of stickers (pictured, right)
    • Sample game card here.

UG Leaders Meeting


  • South Central Regional Leadership meetings held bimonthly with fellow RM Keith Tate
  • Talk to your local .NET
    • Build a critical mass of people for networking , but also for sponsor ROI
    • They have a new parent organizer, the .NET Foundation, which is finally stepping in
    • For a long time we’ve enjoyed being a chapter of PASS, and I think sometimes we take it for granted how great it is, other technologies don’t have it
  • Remote speakers? Must have a good AV setup
    • We’ve had remote speakers more often recently because our venue has given us a conference room with a big TV
    • Do NOT try to do remote speakers with a shabby AV setup. It will discourage people.
    • Always prefer building a local new speaker
    • You can still have a local lightning round speaker as the remote speaker stands by
  • Networking Night
    • Every year the month before our SQLSaturday, we add to the vendor ROI by hosting a networking night.
    • This is one of the biggest meetings of the year for us, 75+ folks show up, many new faces with resumes in hand
    • We have lightning round style talks on career topics, soft skills, entertaining etc. My wife gives a different talk from some aspect of the HR interviewing process every year.
    • http://www.brssug.org/group-news/batonrougeusergroupsnetworkingnight2017
  • Meetup
    • We paid for it with leftover sqlsat money in 2017
    • So far, we have gotten a handful of first timers from meetup, but few retained regulars
    • Other User Groups have had A LOT of success with Meetup.com
  • More social events
    • We’re trying to build more social camaraderie so we’re going to do official self-pay events at various locations around town
    • Especially in December annually

Sunday, October 29, 2017

The #SQLSAT Speaker Goodie Bag

Last summer, I heard about an awesome idea for speaker gifts at SQLSat Pensacola 2017 from organizer Karla Landrum and Tamera Clark (SQLSat Nashville). It was our 9th year of SQLSat Baton Rouge, we've had polo fatigue and were looking for fresh ideas for useful, memorable speaker gifts. SQLSat Nashville's speaker goodie bags, full of day-of-conference supplies, was an inspiration.

I personally heard that at least three speakers went to the bag during SQLSatBR, specifically for the Mini DisplayPort-to-everything video adapter common to laptops. It's an annual occurrence that someone with a newer laptop is dismayed to find they've left their adapter at home, and they don't have a way to hook up to the room's VGA or HDMI cable. I've heard other speakers mention it at user groups meetings since. And just today, my wife Christine (hrtact.com) mentioned that at work she pulls it out for the various useful items.

So in advance of the SQLSat Organizers meeting at PASS Summit this week, I figured I'd list out the contents and sourcing for the goodies that made it into the bag. For some of these, you can even "subscribe and save" via amazon for a huge discount... for one month. ;)

The idea is to give a useful pack of inexpensive things in a bag that sits nicely inside of a laptop bag. The goodies are small, bulk-purchased, inexpensive things that someone would need the day of a speaking event. Links to the items, almost entirely sourced from Amazon.com, are provided only as examples.
The total cost per bag ended up being around $31, or a little more than the cost of an embroidered polo shirt. The biggest single expense (and most often used) item was the mini DisplayPort, roughly half the cost of the entire bag.



Tuesday, October 03, 2017

VS Code: PowerShell and focusConsoleOnExecute

If you're used to the behavior of SSMS or PowerShell ISE where upon executing code in the script panel, your cursor stays in the script panel, then the behavior of Visual Studio Code's PowerShell default might be annoying. By default in Code, your cursor moves down to the PowerShell console terminal upon executing code.

Maybe that's your thing. If not, there's a preference you can change, immediately.

In Code, go to the File Menu -> Preferences to launch the User Settings screen. There's a setting to overwrite the default called powershell.integratedConsole.focusConsoleOnExecute, that's what you're looking for. Add it to the right-side of the Code settings window like this:
{ "powershell.integratedConsole.focusConsoleOnExecute": false,
}

It'll look like this:

The change takes place immediately.
Not using Code yet? Hop to! https://code.visualstudio.com/Download

My former long-ago colleague and PowerShell prize-winning guru Mike F Robbins has a good blog post and video getting you up to speed on Code, he discusses powershell.integratedConsole.focusConsoleOnExecute and more.



Thursday, September 14, 2017

Twilight Timezone: Date and Time Architecture in your Applications aka Use DateTimeOffset, Your Future Self Thanks You

Thanks to everyone at a joint meeting of the Baton Rouge .NET and SQL Server User Groups who joined my colleague Steve Schaneville and me for a presentation on date/time data architecture in modern applications last night.

We reviewed the SQL and .NET architecture for date/time storage an informative and thought-provoking talk about handling timezones in your application architecture. Dealing with Time Zones is disconcerting, rarely straightforward, and often complicated! In the end, our architecture recommendations lead to two likely best paths - either using datetimeoffset (and optionally also storing the Time Zone Name information in a separate field) or storing the date and time in separate fields. (But preferably datetimeoffset.) There are few advantages and major disadvantages to storing only UTC data or all-in-one time zone data.

Steve and I are the principal consultants for appdev and SQL Server respectively at Sparkhound, and have worked hard to put together a joint presentation on this topic that is valuable to both audiences. We got a lot of great questions and positive feedback, as well as more notes to add to our presentation the next time, which will likely be at Houston Tech Fest 2017 in October. Got questions/feedback for us, actual use cases or lessons learned? Please reach out to us, our emails are at the end of the slide deck below.

You can download the slidedeck and sample code here.

UPDATE: Related to Steve and I's presentation on date time architecture, check out our colleague Vance's blog post on serialization: http://www.sparkhound.com/learn/blog/date-demo-blog



Friday, August 04, 2017

SQLSat Planner's Calendar

We just completed our 9th annual SQLSaturday Baton Rouge. In my post-mortem of the event, I've updated and tweaked the living, breathing SQLSaturday Planner's Calendar that I've been crafting for a couple years now.

If you are a SQLSaturday organizer of any level of veterancy, you may find this calendar helpful in remembering to keep up with the months-long building to your event. If you're on some of the SQLSat Slacks you have may seen an earlier version of this doc, and already I've received a ton of good feedback. I am open to feedback on what to add/move/modify in this calendar, please reach out one or another if you have some wisdom that another SQLSat organizer or I need to hear.

Link:
https://1drv.ms/x/s!ArJKDbZJcmzGgYUkumO4G1BeOzWrSw

Let me know if you have any questions or feedback!




Monday, July 31, 2017

Twilight TimeZone: Handling Time in Your App Architecture at SQLSaturday Baton Rouge

Thanks to everyone who joined my colleague Steve Schaneville and me for a presentation on date/time data architecture in modern applications. Steve and I are the principal consultants for appdev and SQL Server respectively at Sparkhound, and figured that a joint presentation on this topic would be valuable.

It was! We got a lot of great questions and positive feedback from our first audience at SQLSat Baton Rouge 2017, as well as a ton of notes to add to our presentation the next time, which will likely be at Houston Tech Fest 2017 in September.

We reviewed the SQL and .NET architecture for date/time storage an informative and thought-provoking talk about handling timezones in your application architecture. Dealing with Time Zones is disconcerting, rarely straightforward, and often complicated! In the end, our architecture recommendations lead to two likely best paths - either using datetimeoffset (and optionally also storing the Time Zone information in a separate field) or storing the date and time in separate fields. (But preferably datetimeoffset.) There are few advantages and major disadvantages to storing only UTC data or all-in-one time zone data.

You can download the slidedeck and sample code here.

UPDATE: Related to Steve and I's presentation on date time architecture, check out our colleague Vance's blog post on serialization: http://www.sparkhound.com/learn/blog/date-demo-blog

Our presentation at SQLSatBR 2017

Sunday, July 30, 2017

Change RegisterAllProvidersIP setting on an existing Availability Group

Was working with a client who had an existing Availability Group, but did not have the RegisterAllProvidersIP setting enabled on their cluster. So, recent changes to their connection strings to take advantage of MultiSubnetFailover to minimize failover re-connection delay wasn't helping. Multisubnet failover needs to see both Listener IP's to help, so RegisterAllProviderIP's is required to be ON.

Here's why.

With RegisterAllProvidersIP disabled on the client access point (the cluster network), only one IP address is made available for the listener. When enabled, all site IPs for the listener are simultaneously listed. Connection strings using MultiSubnetFailover will try out all IPs simultaneously, providing for the fastest possible transition after an availability group failover.

Caveat remains that any connection strings that aren't or can't use MultiSubnetFailover will have problems. So RegisterAllProvidersIP should be enabled only when MultiSubnetFailover can be used in all application connection strings. More information here. You really do need to understand the applications and their connection strings here, this has little to do with the SQL Server and more to do with apps and DNS aliases.

In the case of the client above, enabling RegisterAllProvidersIP on an existing, in-use cluster is possible, but does require a brief outage.

Here is the script to use via PowerShell.

Comments guide along the way.


nslookup AAGListenerName #With RegisterAllProvidersIP = 0, this will only return one IP, the IP of the current primary.



Get-ClusterResource  -Cluster "FC_Name" #Get Cluster Network name



Get-ClusterResource "ClusterNetworkName"  -Cluster "FC_Name" | set-clusterparameter RegisterAllProvidersIP 1  -Cluster "FC_Name"



#You'll get a warning, all changes will take effect until ClusterNetworkName is taken offline and then online again.



Stop-clusterresource "ClusterNetworkName"  -Cluster "FC_Name" #Take Offline



Start-clusterresource "ClusterNetworkName"  -Cluster "FC_Name" #Right Back Online



Start-clusterresource "AAGName"  -Cluster "FC_Name" #This step is important. The AAG is offline, must bring the AAG Back online

#Wait a moment, then verify


Get-ClusterResource  -Cluster "FC_Name" #Verify



nslookup AAGListenerName #This should now return Two IPs, for both the primary and secondary. Now, MultiSubnetFailover can help.

UPDATE: Thanks to a commenter, updated the 0 to 1 in the set-clusterparameter line.

Wednesday, July 19, 2017

SQLSaturday Baton Rouge at LSU on July 29


The big finale to our SQL Summer and the last of the three Gulf South 2017 SQLSat events, our 9th annual SQLSaturday features an 11-track lineup of speakers from around the country, assembled by our scheduling extraordinaire Kenny Neal.

The schedule includes a whole track of PowerBI experts, a panel on Careers in IT, an entire track on Big Data/Analytics, tracks for .NET, mobile, and web developers an entire track for Business Intelligence, and so much more. Oh, and of course top-notch SQL DBA and SQL Development tracks from big names in the SQL industry!

Who attends SQLSaturdays, you say? I'm glad you asked...

This event is entirely free for attendees, including a jambalaya lunch, and tons of raffle prizes to giveaway at the end of the day. Everything is paid for by our amazing sponsors.





Please pre-register if you plan on attending! Please also consider signing up to be a volunteer as well, and our expert volunteer coordinator Adrian Aucoin will put you to work, probably just by being a proctor and attending the same sessions you were going be in anyway. And we still have of sponsor tables available in the atrium to be a part of this local community-driven event.

Have questions about sponsoring? Check out our informational sponsorship PDF explaining all the benefits, costs, the day-of experience, and the process of getting involved in one of the largest and broadest SQLSaturday events in the world. Have questions? Please reach out to us via email at sqlpassbr@gmail.com. The sponsor registration and payment deadline is July 15.

Thumbs up if I'll see you there!


Tuesday, July 04, 2017

Celebrate Your Independence with Free Tools

Been working on this blog post for a while, thought I'd share today an inventory of tools I use regularly that are free to the DBA.

ZoomIt
https://technet.microsoft.com/en-us/sysinternals/zoomit.aspx
A nearly ubiquitous free Microsoft-provided download to provide for easy zooming, live zooming, drawing on your screen, and more. It is something that makes a big difference when communicating to an audience. Won't make you a better presenter, but will make your content clearer and easier to communicate. Be sure to practice with it before you go live. :)

ShareX
https://getsharex.com/
An open source alternative to other screen recording, screen capturing, even making quick .gifs and uploading them to social media, image sharing applications and more.

WinMerge
http://winmerge.org/
An open source alternative to BeyondCompare that has many of the same features, including file and folder structure comparison. I commonly use this to compare large result sets to make sure that my query tuning hasn't drifted the outputs, or to compare two queries to find differences. It's a quick and easy application when this type of text or file comparison is needed. I've been using it for years for these purposes.

Visual Studio Code
https://code.visualstudio.com/
A Microsoft-provided open source rich text editor that has a lot of the features you see in expect in Visual Studio, but in a lightweight, quick-loading text editor that compares favorable to other paid alternatives. It's replaced other alternatives for me for lightweight code editing.

Plan Explorer
https://www.sentryone.com/plan-explorer
SentryOne (formerly SQLSentry) released a user-friendly, feature rich, useful alternative to the SSMS execution plan viewing options that is particularly useful when analyzing massive, complex query execution plans and breaking down costs. The guidance provided is obviously solid technically and can deliver valuable insights. It even has integration with SSMS. A premium paid version has collector service and database.
Also: You should of course also check out new features that have been added to SSMS recently, including Live Query Stats and the Query Store. SSMS itself is a little obvious for this list.

Remote Desktop Connection Manager (RDCMan)
https://www.microsoft.com/en-us/download/details.aspx?id=44989
Not to be confused with Remote Desktop Manager or any similarly-named browser extensions, RDCMan is a free Microsoft-provided tool that makes it easy to organize remote desktop connections, securely store credentials for groups of RDC's, for example in a domain. This is a dream tool for folks who have many RDC's with many credentials in many different domains.
Sidebar: Do you get an annoying popup when you open your RDCMan application, "There were problems decrypting some credentials"? That's the built-in encryption that keeps your stored credentials secure. You'll get that (and lose the stored passwords) when you migrate from one machine to another. You'll have to open the .rdg file and remove the password hashes. There are instructions in the RDCMan help to migrate a personal certificate along with the .rdg file for proper migration, it's the only way to have remembered passwords transfer to another device. (I've been meaning to blog about this over time, but didn't feel it was worthy of its own post.)

OneNote
https://www.onenote.com/
Okay, maybe this isn't free, but it comes with your Office365 account or office license for Word and Excel, so unless you're in a no-Microsoft environment, you have access to OneNote for free.(Teachers and students globally can also get all of Office365 for free.) Had I known about OneNote back in college I'd have been using it then. OneNote is a fantastic information-gathering tool. It can do quite a lot more than a simple note-taking platform. We share password-protected OneNote notebooks on SharePoint for secure team-based collaboration and note taking. And the search function can find word matches in your notes and handwriting, and even in your screenshots, photos, and audio recordings, something you can't do with stacks of legal-size notepad paper. I've presented using OneNote as a whiteboard before as well, and it performs admirably with your drawing pad or tablet touchscreen.
Caveat: By default, the Ctrl+1 zoom feature of ZoomIT (above) and the Ctrl+1 checkbox feature of OneNote make for exciting note taking. The good news ZoomIT is easy to close and re-open.
Slack
https://www.slack.com/
The ubiquitous rich persistent chat app has set a very high bar for other collaboration tools, including the me-too Microsoft Teams. It's free but you have to pay for history and some other features. It's got a million different integrations, is very popular in the tech world for internal corporate team communication, but also in the social activism communities and technical user community, especially in the SQL Server community. The richness of the medium allows for better responses when you're crowd-sourcing SQL help than the twitter hashtag #SQLHelp, which is still popular. Speaking of which...

Twitter
http://www.twitter.com
There is no larger or more popular platform for short-format communication this day and age, used by everyone from teenagers, heads of state, even teenaged heads of state. Hashtags are topics, so posting a question accompanied by #SQLHelp will allow others anywhere in the world to see your post if they follow that topic. Twitter has most impact during live events, especially physical events like conferences, but also sporting events and breaking news. The next time you're at a SQLSaturday event, check out the hashtag for the event, for example, #SQLSatBR at SQLSaturday Baton Rouge. If you're at PASS Summit in the fall, try #SQLSummit. Also, reading about their architecture for outrageous growth scale is interesting.
Quick unsolicited advice: If you're on Twitter, you should try to keep your professional and personal lives separate. You know you shouldn't launch political tirades on LinkedIn or in front of your coworkers or at the Thanksgiving dinner table. You should use your professional platforms to interact with technical peers and colleagues and coworkers, and to represent your employer (and future employers). Use your personal, potentially anonymized account(s) to hurl insults at sports rivals and to argue over whether the dress was blue or gold. As a consultant who tried to keep public work and politics separated, the benefits to this strategy are clear. If you're a government employee, this is probably required of you too.
Microsoft Assessment and Planning Toolkit
https://technet.microsoft.com/en-us/solutionaccelerators/dd537566.aspx
Does a yeoman's job of collecting IT infrastructure inventory in your environment, including SQL Servers, via a variety of connection methods and all without an agent. Generates a bunch of reports that CIO's and managers will eat up. Has delivered good value with minimal investment in time or expertise.

PowerBI
https://powerbi.microsoft.com/
Yep, there is a capable free version for organizations, assuming those organizations have an Azure tenant/Office 365. It is also free for individuals who are not in those organizations.

Vark
http://www.vark.com
Aardvark is a really neat social tool that allows you to source answers come from other users who have signed up for knowledge in general categories. It's really going to change the world.
Just kidding of course, but it was cool in a make-the-world-small kind of way for a while there before Google bought then killed it in 2011.

Friday, June 30, 2017

SQL Server Permissions and Security Principals on UserGroup.tv

You can now watch my presentation on SQL Server Permissions and Security Principals from SQLSaturday Houston 2017 on UserGroup.tv, a site dedicated to capturing presentations just like this, run by Shawn Weisfeld, Sr Technical Evangelist from Microsoft. Thanks Shawn!

Thanks again to the organizers of the very successful SQLSaturday Houston event and to my first-in-the-morning presentation audience! 



Friday, June 23, 2017

A Big July Planned in Baton Rouge

Three big events planned in Baton Rouge this year that everyone can be a part of:

User Groups Networking Night at the Louisiana Technology Park on July 12

Attendees from all Baton Rouge User Groups (SQL Server, .NET, Power BI, IT Pro, SharePoint, and Women in Technology, students, and the public) are invited to this free event!

Our annual Networking Night features short-format entertaining presentations on career topics, technical or nontechnical. In 2014 and 2015 and 2016, 80+ IT professionals and students, including many newcomers, attended this fun event! It's all at the Louisiana Technology Park on July 12.


Be part of this free event by attending, enjoy a free dinner, and all the professional networking you can handle. Even better, be a part of the event by giving a 7-10 minute talk on career soft-skills, professional guidance, etc. WE NEED SPEAKERS!

Examples of entertaining short-format speech topics and a signup form here. Best of all, be a part of Networking Night with an official sponsor presence if you are a Gold or Platinum sponsor of SQLSaturday Baton Rouge (more on that later).

PowerBI PreCon at the Louisiana Technology Park on July 28


The day before SQLSaturday Baton Rouge, join us on Friday all day in the TechParkU room of the Louisiana Technology Park. The only precon for SQLSat Baton Rouge this year features an ALL DAY Deep Dive into PowerBI with Microsoft employees Adam Saxton (Guy in a Cube on Youtube) and Baton Rouge SQL UG founder Patrick Leblanc!


Bring your laptop, grab a cup of coffee, and get ready to learn! Registration fee is $120 for the all-day event and includes lunch! Register Today for the Pre-Con on Friday, July 28!


SQLSaturday Baton Rouge at LSU on July 29


And of course, the big finale to our SQL Summer and the last of the three Gulf South 2017 SQLSat events, our 9th annual SQLSaturday features an 11-track lineup of speakers from around the country, assembled by our scheduling extraordinaire Kenny Neal.

The schedule includes a whole track of PowerBI experts, a panel on Careers in IT, an entire track on Big Data/Analytics, tracks for .NET, mobile, and web developers an entire track for Business Intelligence, and so much more.  Oh, and of course top-notch SQL DBA and SQL Development tracks from big names in the SQL industry!

Who attends SQLSaturdays, you say? I'm glad you asked...

This event is entirely free for attendees, including a jambalaya lunch, and tons of raffle prizes to giveaway at the end of the day. Everything is paid for by our amazing sponsors.


Please pre-register if you plan on attending! Please also consider signing up to be a volunteer as well, and our expert volunteer coordinator Adrian Aucoin will put you to work, probably just by being a proctor and attending the same sessions you were going be in anyway. And we still have of sponsor tables available in the atrium to be a part of this local community-driven event.

Have questions about sponsoring? Check out our informational sponsorship PDF explaining all the benefits, costs, the day-of experience, and the process of getting involved in one of the largest and broadest SQLSaturday events in the world. Have questions? Please reach out to us via email at sqlpassbr@gmail.com. The sponsor registration and payment deadline is July 15.

Thumbs up if I'll see you there!




Wednesday, June 21, 2017

Registrant Job Title Data from SQLSaturday Baton Rouge events 2014-2016

In a blog post on the Sparkhound website, I laid out the strong case for a sponsor's Return on Investment (ROI) for sponsoring local SQLSaturday events. Part of my argument in favor of sponsoring SQLSaturday events are the diversity of attendees and their responsibilities, and particularly, the presence of decision makers.

Attracting the Decision Makers and Influencers


At a large-tent event like SQLSaturday Baton Rouge where we have tracks for IT management, server admins, and .NET developers, the cross section of responsibilities in the registrants skews heavily towards developers and especially decision makers, as evidenced in the below graph:


I believe the percentage of attendees in a decision-making capacity in their workplace is understated at SQLSaturday events, broadly. This is a fact that should be emphasized by SQLSaturday organizers and promoters to potential sponsors.


At SQLSaturday Baton Rouge we have sought out speakers for "IT Management" and "CIO" tracks over the past few years. The speakers remain the type of experienced, highly motivated volunteer professionals that speak in technical tracks. Topics include SQL Server disaster recovery and high availability, the value of business intelligence dashboards, and cloud adoption strategy. The typical "career" track with soft-skills sessions can include giving feedback to employees, or how to best conduct interviews, and how to be more inclusive of women and under-represented demographics. The value of having "something for the boss" at a SQLSaturday translates directly to sponsor ROI.

What about small SQLSaturday events?


To sponsors, the size of the event is a factor, but it shouldn't be the only one. Significant ROI can be returned merely by a sponsor's presence at a local event, showing support for the local IT community. Whether the sponsor is looking to recruit, drive sales, or increase market recognition, the size of a SQLSaturday event doesn't necessary translate to higher ROI.

In fact, smaller SQLSaturdays may provide a bigger share of the spotlight, a more recognized local contribution, and more face time with local IT connections. There are SQLSaturday events held locally around the world almost every weekend of the year - meaning that at least one a year, almost any company has a local, authentic, home-grown opportunity nearby.

Job Title Categorization


If you're curious for how the job titles were categorized, I've included the relatively simple TSQL categorization logic below:
...  set JobTitleCategory = CASE
      
      WHEN [job title] like 'C%' and len([job title]) = 3 
       OR [job title] like '%Chief%'   
       OR [job title] like '%Director%' 
       OR [job title] like '%President%'   
       OR [job title] like '%Officer%' 
       OR [job title] like '%Owner%' 
       OR [job title] like '%CIO%' 
       OR [job title] like 'VP%'
       OR [job title] like '%Partner'
       OR [job title] like 'Founder'
       OR [job title] like 'Attorney%'
       THEN 'C-Suite'

      WHEN [job title] like '%Manager%' 
       OR [job title] like '%Senior%Associate%'
       OR [job title] like 'Head%'
       OR [job title] like '%manger%'
       OR [job title] like 'HR%'
       OR [job title] like '%supervis%'
       OR [job title] like '%coordin%'
       OR [job title] like '%Advisor%'
       OR [job title] like '%Legal%'
       OR [job title] like 'Managing%'
       OR [job title] like 'team lead'
       OR [job title] like 'Process Optimization%'
       OR [job title] like '%Mgr%'
      THEN 'Management'

      
      WHEN [job title] like '%dba%' 
       OR [job title] like 'data%admin%' 
       OR [job title] like '%data%base%' 
       OR [job title] like '%ETL%'
       OR [job title] like '%SQL%'
       OR [job title] like '%PASS%'
       OR [job title] like '%Chapter Leader%'
       OR [job title] like '%DB Admin%'
       THEN 'DBA'
       
      WHEN [job title] like '%BI %' 
       OR [job title] like '%Business Intelligence%' 
       OR [job title] like 'Data%Scien%'
       OR [job title] like '%analytic%'
       OR [job title] like 'Math%'
       OR [job title] like '%data%Architect%' 
       OR [job title] like '%report%' 
       OR [job title] like '%warehouse%' 
       OR [job title] like '%data%specialist%' 
       OR [job title] like '%data%analyst%' 
       OR [job title] like '%Informatics%'
       OR [job title] like '%Information%'
       THEN 'Business Intelligence'

      WHEN [job title] like '%Studen%' 
       OR [job title] like '%grad%'
       OR [job title] like '%Candidate%'
       OR [job title] like '%Intern'
       THEN 'Student'

      WHEN [job title] like '%Accounting%'
       OR [job title] like '%CPA%'
       OR [job title] like '%AP %' 
       THEN 'Accounting'

      WHEN [job title] like '%design%' 
       THEN 'Design'

      WHEN [job title] like '%access control%' 
       OR [job title] like '%security%' 
       OR [job title] like '%sec%' 
       THEN 'Security'
       
      WHEN [job title] like '%Instructor%'
       OR [job title] like '%Teacher%'
       OR [job title] like '%faculty%'
       OR [job title] like 'Research%'
       OR [job title] like 'Editor'
       OR [job title] like 'Librar%'
       OR [job title] like '%school%'
       OR [job title] like '%education%'
       OR [job title] like '%science%'
       OR [job title] like '%instruct%'
       OR [job title] like 'Fellow'
       THEN 'Academia'

      WHEN [job title] like '%programmer%'  
        OR [job title] like '%software%developer%' 
        OR [job title] like '%Software%Engineer%'
        OR [job title] like 'App%Dev%'
        OR [job title] like 'Dev%'
        OR [job title] like 'Comp%Scien%'
        OR [job title] like 'App%Dev%'
        OR [job title] like '%developer%' 
        OR [job title] like 'Tech%Lead'
        OR [job title] like '%application%'
        OR [job title] = 'P/A'
        OR [job title] like 'Program%'
        OR [job title] like '%Architect%' 
        OR [job title] like '%software%' 
        OR [job title] like 'Code%' 
        OR [job title] like 'Analyst%' 
        OR [job title] like 'pgmr%' 
        OR [job title] like 'E-%' 
        THEN 'Developer'

      WHEN [job title] like '%System%Ana%' 
       OR [job title] like '%Comp%Ana%'
       OR [job title] like '%Sys%eng%' 
       OR [job title] like '%Sys%admin%'
       OR [job title] like '%Net%Admin%'
       OR [job title] like '%IT%Tech%'
       OR [job title] like 'IT%specialist%'
       OR [job title] like 'tech%specialist%'
       OR [job title] like '%Engineer'
       OR [job title] like 'MCT%'
       OR [job title] like 'Implement%Spec%'
       OR [job title] like '%technic%'
       OR [job title] like '%Administrator'
       OR [job title] like '%Network%'
       OR [job title] like '%integration%'
       OR [job title] like '%repair%'
       OR [job title] like 'helpdesk%'
       OR [job title] like  'IT%Pro%'
       THEN 'Server Admin'

      WHEN [job title] like 'Customer Support Specialist'
       OR [job title] like 'Tech%Support%'
       OR [job title] like 'Dispute Resolution%'
       OR [job title] like 'Specialist'
       OR [job title] like '%IT%Supp%'
       OR [job title] like '%IT %'
       OR [job title] like '%Support%'
       OR [job title] like 'field%service%'
       OR [job title] like 'desktop%'
       OR [job title] like 'service desk%'
        THEN 'Customer Support'

      
      WHEN [job title] like '%QA%'
       OR [job title] like '%Quality%' 
       OR [job title] like '%test%' 
       THEN 'QA/Testing'

       
      WHEN [job title] like '%SharePoint%'
       THEN 'SharePoint'

     WHEN [job title] like 'Acc%Exec%' 
      OR  [job title] like '%Sales%'
      OR  [job title] like '%Account rep%'
      OR  [job title] like 'Business%Dev%'
       THEN 'Sales'

      WHEN [job title] like  '%Recruiter%'
       THEN 'Recruitment'

      WHEN [job title] like  '%Admin%Assistant%'
       OR [job title] like  '%Assistant'
       THEN 'Administrative Assistant'

      WHEN [job title] like '%Admin%'
       OR [job title] like '%systems%'
       OR [job title] like '%engineer%'
       OR [job title] like '%technolo%'
       OR [job title] like '%operat%'
       OR [job title] like '%IT%'
       OR [job title] like '%server%'
       OR [job title] like '%system%'
       THEN 'Server Admin'

      WHEN [job title] like '%Business%Analyst%'
       OR [job title] like '%Analyst%'
       OR [job title] like '%Auditor%'
       OR [job title] like 'BSA%'
       OR [job title] like '%process%'
       OR [job title] like '%product%'
       OR [job title] like 'BA'
       THEN 'Business Analyst'

      WHEN [job title] like 'Self%Employ%'
       THEN 'Self Employed'
      
      WHEN [job title] like 'Social Worker'
       OR [job title] like '%nurse%'
       OR [job title] like '%dental%'
       OR [job title] like '%health%'
       OR [job title] like '%clinic%'
       OR [job title] like '%medical%'
       OR [job title] like '%nutrition%'
       THEN 'Medical'
      
      WHEN [job title] like '%legal%'
       THEN 'Legal'
      
      WHEN [job title] like '%Project%' 
       OR [job title] like '%PM%' 
       THEN 'Project Management'
        
      WHEN [job title] is null 
       OR [job title] = '' 
       OR [job title] = 'Mr' 
       OR [job title] = 'NA' 
       OR [job title] = 'n' 
       OR [job title] = 'n/a'
       OR [job title] = 'not provided'
       THEN 'Not provided'
      
      WHEN [job title] like '%Consultant%'
       OR [job title] like 'Principal%' 
       THEN 'Consultant'

      ELSE 'Other'

      END

Saturday, June 17, 2017

Great to see you at SQLSaturday Houston 2017

Great to see all of you at #SQLSatHouston today, an awesome event put on by a great crew of volunteers. I presented in the first timeslot of a stacked schedule, and met and made a lot of friends.

My talk on SQL Server Permissions and Security Principals had a great crowd in the morning, about half of whom had never attended a SQLSaturday event before. I was thrilled to be their (hopefully good) energetic first impression!

You can download my slide deck and sample scripts here at the SQLSaturday Houston schedule page.

Please reach out if you have any questions, contact info in the slidedeck. Thanks to UserGroups.tv, you can click here for the video of the presentation.

See you all at SQLSaturday Baton Rouge on July 29!

Monday, June 12, 2017

SQLSaturday Houston 2017 - I'll be there, will you?

Looking forward to combining a work trip with a SQLSaturday trip to Houston this week!

Will be happy to see the #SQLFamily on Friday night and Saturday! So many faces I only get to see once a year, too many!

I'll be presenting in the very first time slot on Saturday morning. Who says 830AM is too early for SQL Server Permissions and Security Principals? Then I'll be helping represent both Sparkhound and PASS at the event. Maybe I'll even get to do this again.

I'm bummed that I'll be presenting in the same timeslot as good friend and fellow Baton Rougean Thomas Leblanc and also good friend and my predecessor as PASS Regional Mentor (and now Microsoft employee) Ryan Adams. What a loaded lineup the rest of the day too!

See you there!


Monday, June 05, 2017

SQLSat Pcola 2017 Security Principals and Permissions

Great attendance and awesome questions from my afternoon session on "SQL Security Principals and Permissions". As promised, both the demo script files, and the entire info-packed slidedeck are available for download here on the official SQLSaturday Pensacola 2017 website.

If you have any questions or would like to get in touch, please let me know, contact info inside. Happy to meet, and thanks again for participating in the session and asking so many great questions.

The wife and I are always happy to join the #SQLFamily at Pensacola annually, hope to see many of you sooner than next year!

Tuesday, May 30, 2017

SQLSaturday Pensacola 2017

It's the start of a SQLSat summer for me, with Pensacola this weekend on Saturday June 3, then Houston two weeks later, then the rampup to my hometown SQLSaturday Baton Rouge on July 29. Hopefully everyone in the region can make it out to all three Gulf Coast region SQLSaturday events.

At SQLSaturday this weekend, both the wife and I will be presenting in the 1:45PM time slot. I'll be presenting on Security Principals and Permissions in SQL Server, and she'll be presenting on pretty much the same topic, except substituting your next job for SQL Server.

SQLSat Pensacola is also sporting a pair of precons, including Tim Mitchell's Building Better SSIS Packages and the McCown's Enterprise Maintenance Lifecycle.

Looking forward to #SQLFamily again this weekend, hope to see you there!