May 012016
 

SQL-Server-2012As Bala Narasimhan from PernixData and I discussed in a webinar last week, SQL Server 2005 hit end of it’s extended support life on April 12th of this year. Any existing SQL Server 2005 instances should be first and foremost in an IT organization’s agenda for modernization this year. If you still have 2005 instances in your environment, the organization is now at risk. If undiscovered bugs or other issues come out of nowhere and cause trouble, your only course of action is to upgrade. So, why wait? Start the process now!

If you need ammunition to help convince your organization about the need to upgrade, just look at the lack of official support. That fact alone should be enough to push the organization to upgrade. If you need additional help, take a solid look at all of the new and compelling features included in SQL Server since 2005!

As discussed in the webinar, a thorough checklist should be developed and scrutinized to help an organization through the upgrade process. Following such a checklist can help you identify and remediate any challenges that might come from the upgrade process.

This list is by no means exhaustive. It’s my personal high-level checklist of things to watch out for, and feel free to add to this checklist anything that matters to you and your organization.

  • Migration process
    • Side-by-side migrations are generally better than in-place upgrades.
    • In-place upgrades leave few roll-back strategies other than VM snapshots, while side-by-side migrations give you the chance to practice the migration and explore test copies of the application to look for any functionality changes.
    • Older installations of SQL Server 2005 could be 32-bit, or the Windows OS version could be 32-bit as well. Migrations help you finally get to 64-bit stacks and leave 32-bit in the dust.
    • What is your upgrade path? Backup and restore? Detach and attach? Replication? Log shipping? Determine your SLAs and select a migration strategy that fits the available migration window.
  • Target instance
    • Is the new SQL Server instance going to be out of support soon? Is it as current as either the organization, licensing, or application allows? Is it fully patched?
    • Can the target hardware (and hopefully virtualization layer) handle the features you intend to use? For example, In-Memory OLTP has higher than expected hardware recommendations, and your target hardware needs to live up to these expectations or else it might artificially hold back performance.
  • Performance expectations
    • Do you have ongoing performance baselines and benchmarks from the current SQL Servers to use for a performance comparison of the target environment?
    • Have you stress tested the target platform to determine if it can handle your workloads? Synthetic workload testing is a great place to start, but real-world testing can help you validate or rule out that the target platform will suffice.
  • Code upgrade
    • Have you performed a high level check of the code with the SQL Server Upgrade Advisor? It helps you review the code for anything that it may find that could break as part of the upgrade process that you should fix ahead of the upgrade.
    • What about SSIS packages, SSRS reports, and SSAS process?
    • Do you have any unnecessary garbage inside the database that is being migrated? For example, look for unused indexes, log or temp tables, or anything else that could be cleaned up before you migrate the database.
  • Application changes
    • Read the release notes for the target version of SQL Server. Then read them again.
    • Have you read the ‘breaking changes‘ and ‘behavioral changes‘ sections of Books Online? These documents contain great insight into any behavioral or other expected functionality in the engine that could change as part of the upgrade.
    • Is the application able to use the latest version of the connection libraries? For example, do you need to upgrade the SQL Native Client or ODBC drivers to take advantage of new SQL Server features?
    • Are any items in the new instances changing expected behavior of items such as query execution plans, ETL processes, long-running tasks, etc.? These can be identified well in advance with the test instance and validation processes.
    • Verify that the application functions as normal after updating the database compatibility level to current. Beware the 2014 cardinality estimator improvements, as occasionally I find applications that respond poorly to the changes and should be set to 2012 compatibility to maintain performance.
  • Upgrade process
    • Perform the upgrade process as normal, and validate that things appear as normal.
    • Once completed, perform the following tasks:
      • Check all logs (SQL Server error log, Agent error log, cluster log (if applicable), Windows event logs, and any virtualization logs to ensure that nothing of importance is lurking.
      • Run DBCC CHECKDB WITH DATA_PURITY to help with any database that has been migrated forward since the bronze age by checking for values that are not valid for the table column datatypes.
      • Change the database compatibility level to current (or as high as you can go).
      • Rebuild all user database indexes and statistics. You may need to even go as far as updating statistics WITH FULLSCAN.
      • Execute a DBCC UPDATEUSAGE to correct any borked page and row counts.
      • Take a backup!

In addition to the technicalities of the migration process, step back a bit and look at the entire architecture around the data. Is it time to revisit any areas of the design? Is the HA architecture overly complicated and Availability Groups can help simplify the design and reduce management overhead? Do we look at consolidating databases or instances? Is it virtualized? Is it time to check out Azure SQL DB or an Azure VM for hosting this data in the cloud? What databases exist on these instances that have not been accessed in years?

Take the time to revisit these architectural decisions as part of the upgrade process. It will usually simplify your architecture, reduce the management overhead, improve availability, and increase agility in the datacenter. The business wins and you can sleep more soundly at night!

Apr 222016
 

Next week I am participating in two exciting webinars that I want to share with you!

ScaleArc WebinarImprove App Uptime: Tips from MVP David Klee + Customer Case Study with ScaleArc
April 26 – 2:00 PM to 3:00 PM Eastern

Application availability is an “across the stack” problem – straddling the app tier, database, virtualization, and cloud infrastructure. DBAs, IT ops, and architects must do more to improve app uptime, particularly at the database tier, where failovers and maintenance cycles disrupt the app, impacting the customer experience.

Attend this webinar with Mouser Electronics’ Director of IT Operations Mark Price and me. Together, we’ll share their expertise on:

– Enhancements in clustering and Availability Groups
– Why these solutions can’t enable seamless failover
– How database-level buffering and acceleration improve app availability
– What IT can do across the stack to improve the customer experience

Get your questions answered on this live event – register here.

Next we’re going to talk about the reasons and challenges around upgrading to the latest versions of SQL Server with PernixData.

PernixLogo_smAvoiding Landmines when Upgrading to SQL Server vNext
April 27 – 1:00 PM to 2:00 PM Eastern

Upgrading to SQL Server 2014 and beyond gives you new levels of performance and flexibility. This is especially true if you are still on SQL Server 2005, which will no longer be supported by Microsoft as of April 12th, 2016.

But are you aware of the landmines that come with such an upgrade? Going in blind can cost you substantial time and money, which your business cannot afford.

Join this interactive video webinar where PernixData’s Bala Narasimhan and I will discuss how you can navigate the top challenges of a SQL Server upgrade, specifically:

– How to optimize storage to avoid database performance hits
– How to minimize SQL server licensing costs during (and after) an upgrade
– How to go virtual without sacrificing SQL Server performance
– Low cost options for in-memory computing

The webcast will feature a live Q&A. Register now or request an on-demand recording.

For more information, click here.

PASS_VC_VirtualizationAlso, on May 11th I’m presenting a new session called ‘Virtual SQL Servers, Actual Performance‘ to the PASS Virtualization virtual chapter.

Virtualizing your business-critical SQL Servers should not imply that they will run slower than if they were physical. When properly architected and managed, virtual SQL Servers should be equally as fast as their physical counterparts, if not faster. However, if not properly constructed, silent and seemingly random performance killers can strike and significantly hurt your database performance. This session is packed with many tips and tricks gained from years of experience for getting the most performance from your virtual SQL Servers. The major roadblocks to performance will be discussed and the knowledge gained will help you work with your infrastructure engineers so you can optimize the system stack for performance. Tools, techniques, and processes will be demonstrated to help you measure and validate the system performance of the key components underneath your data.

RSVP for this webinar today, and be sure to bring your questions!

Apr 082016
 

A number of you sent me some excellent questions about this topic, and my favorite asked me for the query that you can use to get this information DIRECTLY from the VMware vCenter database.

SO… here you go! Just plug in your VM name (which might differ from your FQDN name). Feel free to modify this as needed for your own purposes.

This query will fetch the Co-Stop time from within the vCenter database server. This value is the summation of Co-Stop values over a five minute interval for the last day, if the vCenter statistics collection process is set at the default (and it usually is).

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

SELECT
    vv.[name] AS VMName,
    vh.NAME AS HostName,
    cl.name AS VMwareClusterName,
    vhsd.sample_time AS SampledTime,
    vhsd.SAMPLE_INTERVAL AS SampleInterval,
    vhsd.stat_value AS CPUCoStopTime5mSumInMS,
    vv.num_vcpu AS VMvCPUCount,
    vhsd.DEVICE_NAME AS vCPUNumber
FROM
    dbo.VPXV_HIST_STAT_DAILY vhsd
    JOIN dbo.vpxv_vms AS vv ON vhsd.entity = N’vm-‘+cast(vv.vmid AS NVARCHAR)
    JOIN dbo.vpxv_hosts AS vh ON vv.hostid = vh.hostid
    JOIN dbo.VPXV_COMPUTE_RESOURCE AS cl ON cl.RESOURCEPOOLID = vh.farmid
WHERE
    vv.[name] = ‘DB01’
    AND stat_group = ‘cpu’
    AND stat_name = ‘costop’
    AND vv.[name] IS NOT NULL
    AND ltrim(rtrim(vhsd.DEVICE_NAME)) != ”
ORDER BY
    VMwareClusterName ASC, VMName ASC, SampledTime DESC, vCPUNumber ASC

Enjoy!

Mar 032016
 

process-stop-4Not too many people know about the intricacies of virtualization CPU scheduling and its impact on the performance of the VMs, so application owners out there – listen up! I’ve written about Ready Time (VMware ESXi) / Wait Time Per Dispatch (Microsoft Hyper-V) in the past, but a different challenge arises with VMs that have large vCPU count footprints. It’s called CPU Co-Stop, and it can devastate your application’s performance in a VM.

Continue reading »

Feb 292016
 

2016sqlsatchicagoThis Friday I will be holding a precon training session at the next SQL Saturday in Chicago called ‘SQL Server Infrastructure Tuning for Availability and Performance.’ Only a few seats remain!

The focus of the course is to help those new to the enterprise server infrastructure concepts become familiar with the concept and purposes of each layer of the architecture around their databases, and how this knowledge can benefit them as data professionals. Participants will gain exposure to all layers of infrastructure and virtualization underneath SQL Server, from storage all the way through to the SQL Server instance, and will learn how to review and engineer the entire stack with a strong emphasis on SQL Server performance.

The following topics will be addressed during the course:

  • Datacenter Fundamentals
  • Infrastructure Stack Fundamentals
  • Storage and SAN Concepts and Design
  • Networking and Interconnect Topologies
  • Physical Server Technologies
  • The SQL Server Virtual Machine
  • High Availability and Disaster Recovery
  • Performance Investigation and Tuning of the Entire Stack

A working set of the screens and configuration settings referenced in the session, together with the reference slides and documentation, will be provided to attendees, for strategic reference in working with SQL Server and the infrastructure underneath in their own environments.

I am really happy to be launching this new precon, and look forward to seeing you all there! Reserve your seat at this exciting event at EventBrite here. Tickets are available at $150 plus EventBrite fees.

Feb 182016
 

2016sqlsatchicagoI’m running a flash sale discount for my upcoming Chicago SQL Saturday Precon called ‘SQL Server Infrastructure Tuning for Availability and Performance‘ today from 1-5PM only! I’m offering a $25 discount for those that are watching Twitter and the blogosphere.

The focus of the course is to help those new to enterprise server infrastructure concepts become familiar with the function and purpose of each layer of the architecture around their databases, and how this knowledge can benefit them as data professionals. Participants will gain exposure to all layers of infrastructure and virtualization underneath SQL Server, from storage all the way through to the SQL Server instance, and will learn how to review and engineer the entire stack with a strong emphasis on SQL Server performance.

The following topics will be addressed during the course:

  • Datacenter Fundamentals
  • Infrastructure Stack Fundamentals
  • Storage and SAN Concepts and Design
  • Networking and Interconnect Topologies
  • Physical Server Technologies
  • The SQL Server Virtual Machine
  • High Availability and Disaster Recovery
  • Performance Investigation and Tuning of the Entire Stack

If you’re interested in learning more and taking advantage of this discounted training opportunity, click on over to the event page at EventBrite! This discount is just valid today 1-5PM!