As Microsoft SQL Server specialists we are increasingly asked to provide training workshops and knowledge transfer sessions for Database Administration (DBA) tasks and best practices. The majority of enquiries are for managing large database, i.e. those over 50Gb are around the size we say a database starts getting large, or for clients with many servers and databases in their estate.
Training the Database Administrator - Classic Training Topics
Typically we find that customers want a training workshop covering install and configuration for SQL Server, managing database files, backup and restore of databases, managing security, monitoring SQL Server activity, transferring data in and out of SQL Server, automating administrative tasks. Requests for high availability overviews such as technology heads-up for clustering, log shipping and replication, snapshot and other high availability database engine technologies.
Advanced Query Writing
Supplying colleagues and management with the information they demand can be a daunting task. These types of requests landing on the lap of someone responsible for the environment is often called Management Information (MI) and can take two forms. The first is a request for a specific query to be written that has not been requested before to examine data from a unique angle or perspective to identify trends or patterns in behaviour. The second is a reoccurring request for the same data at different intervals or varying parameters; the only obstacle here is to get the structure of the query written and then make the information accessible to the requestor without having to put pressure on your time repeatedly. We achieve this most often using SQL Server Reporting Services (SSRS) to which the requestor can subscribe to have the information delivered into their Inbox at the desired frequency and provides the ability to graphically render charts and pivot tables.
Performance Management, Locking and Concurrency
SQL Server Profiler and Query Analyser is the tool of choice when developing new queries and seeing how existing database code is efficiently, or most of the time un-efficiently, handled. It’s never the intention that database developers don’t want their code and queries to be executed optimally but an in-depth knowledge of how the core database engine translates and processes those queries is often not understood. Covered queries, good index selection and locking hints are a good starting point in training developers and DBAs how to get the fastest responses and levels of concurrency. Concurrency is a measurement of how many users, or queries, can be processed in parallel. These parallel operations may be several hundred multiple repetitions of the same query or high contention for the data resource. This could be data pages, locks on data pages, rows of tables or physical resource waits on disk, CPU or memory.