10 операторов T-SQL, которые полезны для администраторов базы данных SQL Server.

Tsql теория > 10 операторов T-SQL, которые полезны для администраторов базы данных SQL Server.
02.04.2013 18:04:35



Статья:

Top 10 Transact-SQL Statements a SQL Server DBA Should Know

Эта статья перечисляет лучшие 10 операторов T-SQL, которые полезны для администраторов базы данных SQL Server.

T-SQL Statement 1

Следующий оператор T-SQL получает информацию, такую как Hostname, Current instance name, Edition, Server type, ServicePack and version number from current SQL Server connection

SELECT 
          SERVERPROPERTY('MachineName') as Host,
          SERVERPROPERTY('InstanceName') as Instance,
          SERVERPROPERTY('Edition') as Edition, /*shows 32 bit or 64 bit*/
          SERVERPROPERTY('ProductLevel') as ProductLevel, /* RTM or SP1 etc*/
          Case SERVERPROPERTY('IsClustered') when 1 then 'CLUSTERED' else
      'STANDALONE' end as ServerType,
          @@VERSION as VersionNumber

retrieve server information
Fig 1.1

T-SQL Statement 2

Управления конфигурацией уровня сервера некоторые из функций и производительность SQL Server. Для DBA SQL Server также важно знать конфигурационную информацию уровня сервера. Следующий SQL-оператор даст всю информацию, связанную с конфигурацией уровня Сервера.

SELECT * from sys.configurations order by NAME

Если Вы используете SQL Server 2000, можно выполнить следующую команду

SP_CONFIGURE 'show advanced options',1
go
RECONFIGURE with OVERRIDE
go
SP_CONFIGURE
go

information related to Server level configuration
Fig 1.2

T-SQL Statement 3

Безопасность является очень важным аспектом, о котором должен знать DBA. Также важно знать, у какого входа в систему есть sysadmin или администраторская роль уровня сервера безопасности. Следующая Команда SQL покажет информацию, связанную с администраторской ролью сервера безопасности и ролью сервера системного администратора.

SELECT l.name, l.denylogin, l.isntname, l.isntgroup, l.isntuser
  FROM master.dbo.syslogins l
WHERE l.sysadmin = 1 OR l.securityadmin = 1

information related to the security admin server role and system admin server role
Fig 1.3

T-SQL Statement 4

Следующий оператор T-SQL перечислит все флаги трассировки, которым включают gloabally на сервере

DBCC TRACESTATUS(-1);

Следующий оператор T-SQL перечислит все флаги трассировки, которые включаются на текущем соединении SQL сервера.

DBCC TRACESTATUS();

list all the trace flags that are enabled on the current sql server connection
Fig 1.4

Операторы Transact-SQL Уровня базы данных DBA SQL Server

T-SQL Statement 5

Получение информации уровня Базы данных одинаково важно как информация об уровне Сервера. Следующий оператор T-SQL дает информацию об именах базы данных, их уровне совместимости и также модели восстановления и их текущем статусе. Следствие этого Оператора T-SQL поможет Вам определить, есть ли какое-либо необходимое обновление уровня совместимости. Обновляя от более старой версии до новой версии, уровень совместимости базы данных, возможно, не находится в требуемом уровне. Следующий оператор поможет Вам перечислить все имена базы данных с compatibilty уровнем. Это также перечисляет онлайновое/офлайновое состояние базы данных так же как помогания DBA видеть, необходимо ли какое-либо обновление к модели восстановления.

SELECT name,compatibility_level,recovery_model_desc,state_desc  FROM sys.databases

list all of the database names with compatibilty level
Fig 1.5

If you are using SQL Server 2000, you could execute the following T-SQL Statement.

SELECT name,cmptlevel,DATABASEPROPERTYEX(name,'Recovery')AS RecoveryModel, 
DATABASEPROPERTYEX(name,'Status') as Status FROM sysdatabases

list all of the database names with compatibilty level in SQL Server 2000
Fig 1.6

T-SQL Statement 6

Следующий уровень информации, связанной с базой данных, которая необходима, является расположением базы данных. Следующий Оператор T-SQL обеспечивает логическое имя и физическое расположение данных/файлов журнала всех баз данных, доступных в текущем экземпляре SQL Server.

SELECT db_name(database_id) as DatabaseName,name,type_desc,physical_name FROM sys.master_files

the logical name and the physical location of the data/log files of all the databases available in the current SQL Server instance
Fig 1.7

If you are using SQL Server 2000, you could execute the following T-SQL Statement. Refer Fig 1.8

SELECT db_name(dbid) as DatabaseName,name,filename FROM master.dbo.sysaltfiles

the logical name and the physical location of the data/log files of all the databases available in the current SQL Server instance in SQL Server 2000
Fig 1.8

T-SQL Statement 7

База данных может содержать группы файлов кроме первичной группы файлов. Следующий Оператор T-SQL выполняется в каждой базе данных на сервере и выводит на экран связанные результаты групп файлов.

EXEC master.dbo.sp_MSforeachdb @command1 = 'USE [?] SELECT * FROM sys.filegroups'

T-SQL Statement gets executed in each database on the server and displays the file groups related results
Fig 1.9

Резервные Операторы Transact-SQL Уровня SQL Server

T-SQL Statement 8

Резервное копирование базы данных является хлебом с маслом для администраторов базы данных. Следующий Оператор T-SQL перечисляет все базы данных в сервере, и в последний день резервное копирование произошло. Это поможет администраторам базы данных проверить резервные задания и также удостовериться, что резервные копии происходят для всех баз данных.

SELECT db.name, 
case when MAX(b.backup_finish_date) is NULL then 'No Backup' else convert(varchar(100), 
	MAX(b.backup_finish_date)) end AS last_backup_finish_date
FROM sys.databases db
LEFT OUTER JOIN msdb.dbo.backupset b ON db.name = b.database_name AND b.type = 'D'
	WHERE db.database_id NOT IN (2) 
GROUP BY db.name
ORDER BY 2 DESC

list all of the databases in the server and the last day the backup happened
Fig 1.10

T-SQL Statement 9

Следующий уровень информации, которая важна для администратора базы данных SQL Server, чтобы знать, является расположением всех файлов резервных копий. Вы не хотите, чтобы резервные копии пошли в локальный диск или в диск ОС. Следующий оператор T-SQL получает всю информацию, связанную с текущим резервным расположением от базы данных msdb

SELECT Distinct physical_device_name FROM msdb.dbo.backupmediafamily

get all the information related to the current backup location from the msdb database
Fig 1.11

Операторы Transact-SQL - процессы SQL Server

T-SQL Statement 10

Наконец, что не менее важно, информация, связанная с текущими процессами и соответствующей информацией соединения. С начала администраторы базы данных SQL Server использовали sp_who и sp_who2, чтобы проверить текущих пользователей, процесс и информацию о сеансе. Эти операторы также предоставили информацию, связанную с центральным процессором, памятью и информацией о блокировании, связанной с сеансами

sp_who
sp_who2

information related to cpu, memory and blocking information related to the sessions
Fig 1.12

Заключение
Как упомянуто в начале этой статьи, Microsoft SQL Server является многофункциональным продуктом системы управления базами данных. У каждой функции, поддерживавшей SQL Server, есть свой собственный список команд. Эта статья покрывала Лучшие 10 операторов T-SQL, которые полезны для DBA SQL Server.