SQL Saturday #439 Columbus 2015 to be held at Troy University

I am excited to share that SQL Saturday #439 Columbus 2015 will be hosted by Troy University’s Sorrell College of Business and the Phenix City Campus.

In about one month, on October 3, 2015, make plans to attend this free, one-day SQL Server event. Not only can you pick up some new SQL skills or refresh existing ones, it’s also a great network opportunity. Troy University is also proud of its new facility on the banks of the Chattahoochee River, dubbed the Riverfront Campus.

Troy University's new Phenix City Riverfront campus

Troy University’s new Phenix City Riverfront campus

Speaker selections have not been finalized yet, but I expect to present at least one session in addition to volunteering for the event. I hope to see you there!

Categories: SQL Saturday Tags:

ASP.NET config in Azure: Couldn’t be easier

I’ve started a new software development project recently, and the entire solution will be hosted on Azure PaaS resources, including Web Apps. Part of application development involves storing configuration settings for the application. Notably, this could include the database connection string(s). In the case of the app under development, there are Azure Active Directory, Azure Key Vault and Azure Storage Account settings (to name but a few).

Over the years, storing configuration settings in web.config has been a common practice. Visual Studio enhancements in recent versions, especially Web.config transformation, have made web.config deployment to different environments (such as test, QA, staging and production) also much easier.

On Azure, things get especially interesting though. In addition to the many settings for the different Azure resources, the concept of deployment slots on a Web App allow for different versions of the code to run in a single VM. This is useful for test, QA, A+B testing, etc. However, you might very well have the same Visual Studio build configuration for code that lives in different deployment slots.

On top of that, there are some settings that will keep the same values across deployment slots (for example, your database connection string would not change for A+B testing), but will change for other deployment slots. You’d quickly end up with an exponentially growing number of Web.config transformation files and the added risk of accidentally deploying an incorrect build configuration to a particular slot.

So, instead of trying to create Web.config transformation files for every combination of settings, you would instead add your connection string(s) and app setting values to the Azure Portal UI. This will not actually update the values in web.config, but using the standard ConfigurationManager API, will cause those values to be used instead of those found in web.config. Don’t worry, you don’t need to specify all app settings keys in the Azure Portal. Add only those you care to have Azure change for you based on the deployment slot.

In addition to being very convenient, there are also security benefits, as described in this post:
http://blogs.msdn.com/b/subodhpatil/archive/2013/08/02/importance-app-settings-in-azure-website-portal.aspx

A full walk-through of creating deployment slots and how configuration settings can swap or “stick” to deployment slots, see this tutorial:
https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/

Categories: ASP.NET, Azure Development Tags:

T-SQL window functions talk summary and sample scripts

Yesterday, I spoke to the Steel City SQL User group on T-SQL window functions. Below is a short summary and links to the sample scripts and database.

The T-SQL window functions came about in SQL Server 2005, but you really want SQL Server 2012, because many functions were added and also because support for PARTITION BY was introduced only in 2012.

The basic script below does a good job demonstrating each function with very small data sets in temporary tables. This makes it easy to examine the output. For larger examples, I used two real-world data sets: domestic flight data from October and November 2014 (about 1 million rows) and course section data from Troy University. The flight data is available for download (caution: large file), but I can’t make the course section data available.

The functions that I focused on during my presentation were

  • ROW_NUMBER
  • RANK, PERCENT_RANK and DENSE_RANK
  • LAG and LEAD

I briefly showed the other window functions also, like CUME_DIST, PERCENTILE_CONT, etc. Some of the sample scripts also include turning SUM and COUNT into window functions instead of aggregate functions (i.e no GROUP BY required).

Here are the downloads (hosted on OneDrive):

SQL Saturday #342 in Mobile is tomorrow

Here is a summary of my session, at 3 PM in “Room 2” (that just sounds too easy…)

Of course, you really want to sign up for the other speakers, but just maybe at 3 PM my session will appeal to you.

P.S.: Bring your family to Mobile! Tomorrow they can get free admission to the USS Alabama and Battleship Memorial Park.

Windows Server 2012 R2 High Availability for SQL Server

After presenting this session a few times, I now know to make sure attendees a clear from the beginning that this is a Windows-focused session! With the increasing adoption rate of virtualization, creating SQL Server clusters is now within reach of many more DBAs. What do you need to know about Windows Server 2012 (R2) virtualization and high availability to set up your first cluster? Come learn from a Windows Server admin and (accidental) DBA who’s been building SQL Server clusters since 2000 (the year and the version!). We’ll discuss initial planning, the process and the maintenance best practices. There will be demos too, so if you want to see a multi-node SQL cluster run on a Lenovo X230 tablet, come see (it’s pretty cool!).

SQL Saturday 328 Birmingham 2014 is next week!

SQL Saturday 328 Logo

In my usual fashion, I am both late in blogging about and in preparing for the next SQL Saturday.

Anyway, after a one-year hiatus, SQL Saturday is back in Birmingham on Saturday, August 23, 2014. I’ve had very enjoyable experiences on every visit to Birmingham’s SQL community (Steel City SQL) events and based on the schedule for this year, I think any DB professional should attend.

I am presenting two sessions, the information for which I’ve included below. I hope to see you in Birmingham next week!

Windows Server 2012 R2 High Availability for SQL Server

After presenting this session a few times, I now know to make sure attendees a clear from the beginning that this is a Windows-focused session! With the increasing adoption rate of virtualization, creating SQL Server clusters is now within reach of many more DBAs. What do you need to know about Windows Server 2012 (R2) virtualization and high availability to set up your first cluster? Come learn from a Windows Server admin and (accidental) DBA who’s been building SQL Server clusters since 2000 (the year and the version!). We’ll discuss initial planning, the process and the maintenance best practices. There will be demos too, so if you want to see a multi-node SQL cluster run on a Lenovo X230 tablet, come see (it’s pretty cool!).

SQL Server Optimization for SharePoint

This is a new session for me. DBAs know that SharePoint just doesn’t play nice with SQL Server. SharePoint administrators know that DBAs just don’t understand SharePoint. This session will show hands-on how to get a SQL Server instance set up more effectively for SharePoint 2013. It’s not black magic and it doesn’t involve undocumented trace flags. Maybe DBAs and SharePoint admins can’t get along, but at least you’ll be able to cooperate after this session.

TechDays San Francisco Wrap Up

My first visit with the Pacific IT Pros group was a fun experience. The Pacific IT Pros group put on a great event with their TechDays San Francisco. Kudos to the organizers and thank you to the sponsors!

For the attendees who attended one or both of my sessions about the Microsoft Deployment Toolkit, thank you! You were a great group to present to. As promised during the presentation, here are the links to the slide decks as well as my demo scripts:

Getting Started with MDT 2013 to Deploy Windows 8.1

Application Deployment Tips and Tricks

Presenting at TechDays San Francisco only two weeks away

On June 5-6, the Pacific IT Pros user group is hosting their TechDays San Francisco event. There is still time to register, and for 2 days of training from recognized speakers (and me too) the price is a bargain. Head over to http://techdays.org and register today.

Below is a summary of the sessions I will be presenting on Deploying Windows 8.1 with MDT.

Getting Started with MDT 2013 to Deploy Windows 8.1

Designed for IT professionals who are new to MDT and/or Windows 8.1, this session demonstrates how to set up your first deployment shares and get you started quickly. Many Windows 8.1 specific deployment tips will be included, such as customizing the start screen and Windows Modern app deployment. Other demonstrations will include application silent installers and setting up PXE. We’ll look at the most basic aspects of troubleshooting in MDT. The session overall will focus on applying some tried and true practices of OS deployment with MDT.

Application Deployment Tips and Tricks for MDT

MDT provides out-of-the-box support for deploying Microsoft Office applications. Beyond those, you need to find out the silent installation options for other applications. This session demonstrates some practices to make application installations consistent, regardless of their origin. You will learn general approaches to finding, testing and implementing silent installations for many common and some not-so-common applications. You should walk away from this session confident that there will be far fewer applications in your inventory that will require manual installations as part of PC deployments.

Follow

Get every new post delivered to your Inbox.

Join 142 other followers