starzware

ITスキル

Oracle

TIPS
ロックエスカレーションを無効にする

ALTER TABLE テーブル名 SET (LOCK_ESCALATION = DISABLE) 
インデックスの断片化と再構成と再構築

[断片化]
SELECT
  avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats
(
DB_ID(N'データベース名'), OBJECT_ID(N'テーブル名'), NULL, NULL, NULL
) AS a
JOIN sys.indexes b
ON  a.ojbect_id = b.object_id
AND a.index_id = b.index_id

[再構成]
ALTER INDEX ALL ON テーブル名 REORGANIZE;

[再構築]
ALTER INDEX ALL ON テーブル REBUILD;

接続ユーザ

SELECT * FROM sys.dm_exec_sessions
データベースファイルと圧縮

[データファイル(mdf)]
DBCC SHRINKDATABASE(データ論理名)

[ログファイル(ldf)]
DBCC SHRINKFILE(ログ論理名)

実行プランと実行計画

[実行計画]
SET SHOWPLAN_TEXT, SHOWPLAN_ALL

[実行プラン]
SET STATITICS PROFILE ON
 確認したいSQL
SET STATITICS PROFILE OFF
インデックスとロック

[更新SQL]
クラスタ化インデックスを走査し非クラスタ化インデックスを更新する

[参照SQL]
非クラスタ化インデックスを先に走査した後クラスタ化インデックスを参照する

※ダーティリードが可能であれば"nolock"をつける
Image型にファイル内容を入れる

OpenRowSet関数を使う
例)テーブル a_tbl , 列 (id, data)
 insert into a_tbl
  select
   'idxxx' , bulkcolumn
  from openrowset(bulk N'D:¥file.data', SINGLE_BLOB)
シノニムとリンクサーバ

[シノニム]
別名を付与する

[リンクサーバ]
他のDBのテーブルを参照したい時に作成する(ユーザとパスワードの指定あり)
照合順序

Japanese_XX_XX....
[CI/CS] 大文字小文字の区別
 CI: しない
 CS: する
[AI/AS] アクセントの区別
 AI: しない
 AS: する
[KI/KS] ひらがなとカタカナ
 KI: しない
 KS: する
[WI/WS] 半角/全角の区別
 WI: しない
 WS: する
件数を絞って表示

SELECT top 10 * from xxxxx
10件を表示(フェッチした順番に10件)
ロックの種類

S-Lock 共有ロック
 S-Lock可能。X-Lock不可。
X-Lock 専有ロック
 S-Lock不可。
弱い S-Lock "nolock"でロック
 専有ロック可能。ただし、ファントムリードしやすい