- テーブルの特定の位置にカラムを追加する ... SQL Serverではできない!ダサッ!
実行SQL †
- 現在実行中のSQLを表示
select sql.text as クエリ,
db.name as DB,
req.session_id,
req.status,
req.command,
(req.total_elapsed_time/1000) as 経過時間_秒,
req.start_time as 処理開始日時
from sys.dm_exec_requests req cross apply sys.dm_exec_sql_text(req.sql_handle) sql,
sys.databases db
where db.database_id = req.database_id
- CPU の平均時間で順位付けされた上位5つのクエリに関する情報
SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time],
SUBSTRING(st.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;
テーブル有無 †
IF OBJECT_ID (N'テーブル名', N'U') IS NOT NULL
「テーブルが見つかったときの処理」
ELSE
「テーブルが見つからなかったときの処理」
- OBJECT_ID関数に指定する引数は
- 第一引数:オブジェクト名
- 第二引数:オブジェクトタイプ
- 第二引数に【N'U'】を指定する理由は、【N'U'】がテーブルのオブジェクトタイプのため
クエリタイムアウト †
Tips †
変数 †
SQL †
データコピー †
insert [コピー先DB].dbo.[テーブル名]
select [コピー元DB].dbo.[テーブル名]