Red Gate, 2012. — 220 p. — ISBN: 978-1-906434-94-6 На англ. языке. When a SQL Server database is operating smoothly and performing well, there is no need to be particularly aware of the transaction log, beyond ensuring that every database has an appropriate backup regime and restore plan in place. When things go wrong, however, a DBA's reputation depends on a deeper understanding of the transaction log, both what it does, and how it works. An effective response to a crisis requires rapid decisions based on understanding its role in ensuring data integrity. In this book, we strive to offer just the right level of detail so that every DBA can perform all of the most important aspects of transaction log management. This book cover: The critical role of the SQL Server transaction log and write ahead logging. How to perform transaction log backup and restore in FULL and BULK_LOGGED recovery models. Managing log growth, and dealing correctly with an overgrown or full log. Optimizing log throughput and availability, and how to avoid log fragmentation. In short, our book will show you how to control your transaction log, so that it doesn't control you. The duties and s of a Database Administrator (DBA) make for long and dynamically changing list, ranging from offering query tuning advice, to cutting stored procedures, all the way through to system process design and implementation for high availability. A DBA's tasks, from day-to-day, are rarely constant; with one the need to ensure each and every day that any database in their charge can be restored and recovered, in the event of error of disaster. This means that if a database, for whatever reason, gets corrupted, dropped, or otherwise becomes unusable, then it is the DBA's responsibility to restore that database to the state it was in before the problem occurred, or as close as is possible. Of course, this doesn't mean that a DBA is required to restore a database each and every day, just that if disaster does strike the DBA must be prepared to deal with it, regardless of when or why it occurs. If a DBA isn't prepared, and significant data is lost, or databases become unavailable to end users for long periods of time, then that DBA probably won't be in their job for too long. This is why a good, and tested, SQL Server backup and restore plan must be on the top of every administrative DBA's list of tasks. In this book, you'll discover how to perform each of these backup and restore operations using SQL Server Management Studio (SSMS), basic T-SQL scripts and Red Gate's SQL Backup tool. Capturing backups using SSMS or simple scripts is perfectly fine for one-off backup operations, but any backups that form part of the recovery strategy for any given database must be automated and you'll also want to build in some checks that, for example, alert the responsible DBA immediately if a problem arises. The tool of choice in this book for backup automation is Red Gate SQL Backup. Building your own automated solution will take a lot of work, but we do offer some advice on possible options, such as PowerShell scripting, T-SQL scripts and SQL Server Agent jobs. If you've designed your SQL code intelligently, and implemented a sensible indexing strategy, there's a good chance your queries will fly, when tested in isolation. In the real world, however, where multiple processes can access the same data at the same time, SQL Server often has to make one process wait, sacrificing concurrency and performance, in order that in order that all can succeed, without destroying data integrity. Transactions are at the heart of concurrency. I explain their ACID properties, the transaction isolation levels that dictate the acceptable behaviors when multiple transactions access the same data simultaneously, and SQL Server's optimistic and pessimistic models for mediating concurrent access. Pessimistic concurrency, SQL Server's default, uses locks to avoid concurrency problems. I explain all the different locks and their compatibility. I show how to control locking with hints and bound connections, and how to troubleshoot excessive blocking and deadlocking. Optimistic concurrency uses row versions to support concurrency.I explain how row versioning works, cover SQL Server's two Snapshot-based isolation levels and offer troubleshooting tips for issues such as update conflicts. Your application can have world-class indexes and queries, but they won't help you if you can't get your data, because another application has it locked. That's why every DBA and developer must understand SQL Server concurrency, and how to troubleshoot any issues. I hope my book helps! A database administrator's duties include ensuring that a database can be restored and recovered in the event of error or disaster. This book discusses how to perform backup and restore operations using SQL Server Management Studio (SSMS), basic T-SQL scripts and Red Gate's SQL Backup tool. Capturing backups using SSMS or simple scripts is fine for one-off backup operations, but any backups that form part of the recovery strategy for any given database must be automated with some built-in checks that, for example, alert the responsible database administrator immediately if a problem arises. The tool of choice in this book for backup automation is Red Gate SQL Backup. Building an automated solution will take a lot of work, but this book offers some advice on possible options, such as PowerShell scripting, T-SQL scripts and SQL Server Agent jobs. -- Edited summary from book An execution plan describes what's going on behind the scenes when SQL Server executes a query. It shows how the query optimizer joined the data from the various tables defined in the query, which indexes it used, if any, how it performed any aggregations or sorting, and much more. It also estimates the cost of all of these operations, in terms of the relative load placed on the system. Database administrators, developers, report writers, and others who write T-SQL to access SQL Server data, must understand how to read and interpret execution plans. This book covers from the basics of capturing plans through how to interrupt them in their various forms, graphical or XML, and then how to use the information found there to diagnose the most common causes of poor query performance, and so optimize SQL queries, and improve indexing strategy. -- Edited summary from book Execution plan basics -- Reading graphical execution plans for basic quries -- Test and XML execution plans for basic queries -- Understanding more complex query plans -- Controlling execution plans with hints -- Cursor operations -- Special datatypes and execution plans -- Advanced topics This book shows how to use of mixture of home-grown scripts, native SQL Server tools, and tools from the Red Gate SQL Toolbelt, to successfully develop database applications in a team environment, and make database development as similar as possible to "normal" development. Concurrency and transactions -- Locking basics -- Advanced locking concepts -- Controlling locking -- Troubleshooting pessimistic concurrency -- Optimistic concurrency