Microsoft SQL Server
インスタンスに関する情報を取得する
サーチ…
ローカルサーバーとリモートサーバーの取得
インスタンスに登録されているすべてのサーバーのリストを取得するには、次のようにします。
EXEC sp_helpserver;
現在のセッションとクエリの実行に関する情報を取得する
sp_who2
この手順を使用して、現在のSQLサーバーセッションに関する情報を検索できます。プロシージャなので、結果を一時表または表変数に格納して、必要に応じて結果を順序付け、フィルタリングおよび変換できるようにすると便利です。
以下は、クエリ可能なバージョンのsp_who2
使用できます。
-- Create a variable table to hold the results of sp_who2 for querying purposes
DECLARE @who2 TABLE (
SPID INT NULL,
Status VARCHAR(1000) NULL,
Login SYSNAME NULL,
HostName SYSNAME NULL,
BlkBy SYSNAME NULL,
DBName SYSNAME NULL,
Command VARCHAR(8000) NULL,
CPUTime INT NULL,
DiskIO INT NULL,
LastBatch VARCHAR(250) NULL,
ProgramName VARCHAR(250) NULL,
SPID2 INT NULL, -- a second SPID for some reason...?
REQUESTID INT NULL
)
INSERT INTO @who2
EXEC sp_who2
SELECT *
FROM @who2 w
WHERE 1=1
例:
-- Find specific user sessions:
SELECT *
FROM @who2 w
WHERE 1=1
and login = 'userName'
-- Find longest CPUTime queries:
SELECT top 5 *
FROM @who2 w
WHERE 1=1
order by CPUTime desc
インスタンスのエディションとバージョンの取得
SELECT SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('EngineEdition') AS EngineEdition;
インスタンスの稼働時間を日単位で取得する
SELECT DATEDIFF(DAY, login_time, getdate()) UpDays
FROM master..sysprocesses
WHERE spid = 1
SQL Serverのバージョンに関する情報
SQL Serverのエディション、製品レベル、バージョン番号、およびホストマシン名とサーバータイプを確認するには:
SELECT SERVERPROPERTY('MachineName') AS Host,
SERVERPROPERTY('InstanceName') AS Instance,
DB_NAME() AS DatabaseContext,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
CASE SERVERPROPERTY('IsClustered')
WHEN 1 THEN 'CLUSTERED'
ELSE 'STANDALONE' END AS ServerType,
@@VERSION AS VersionNumber;
データベース、テーブル、ストアドプロシージャ、およびそれらの検索方法に関する一般情報
最後に実行されたspをdbで検索するクエリ
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script]
FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC
ストアドプロシージャを介して検索するクエリ
SELECT o.type_desc AS ROUTINE_TYPE,o.[name] AS ROUTINE_NAME,
m.definition AS ROUTINE_DEFINITION
FROM sys.sql_modules AS m INNER JOIN sys.objects AS o
ON m.object_id = o.object_id WHERE m.definition LIKE '%Keyword%'
order by ROUTINE_NAME
データベースのすべてのテーブルから列を検索するためのクエリ
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
where c.name like 'Keyword%'
ORDER BY schema_name, table_name;
リストアの詳細を確認するための照会
WITH LastRestores AS
(
SELECT
DatabaseName = [d].[name] ,
[d].[create_date] ,
[d].[compatibility_level] ,
[d].[collation_name] ,
r.*,
RowNum = ROW_NUMBER() OVER (PARTITION BY d.Name ORDER BY r.[restore_date] DESC)
FROM master.sys.databases d
LEFT OUTER JOIN msdb.dbo.[restorehistory] r ON r.[destination_database_name] = d.Name
)
SELECT *
FROM [LastRestores]
WHERE [RowNum] = 1
ログを検索するには
select top 100 * from databaselog
Order by Posttime desc
Spsの詳細を確認するクエリ
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
Order by modify_date desc
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow