レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

SQLServer2005

SQLServerのユーザー定義テーブル値関数

ユーザー定義テーブル値関数というのをあまりよく知りませんでしたが、中々面白いもんですね。引数を与えられるViewのようなものでしょうか。戻り値としてtable データ型を返します。 ユーザー定義テーブル値関数は、table データ型を返します。インライン …

SQLServer2005からの新機能「Pivot句」

SQLServer2005からの新機能「Pivot句」のおかげで、昔なやんで、ゴリゴリ組んだ「テーブル行の横展開」が一瞬にしてできるようになってる。 ■やりたいこと※Befor (このテーブルを) USER_ID USER_NAME SEX 1 山本 1 2 山田 1 3 山下 0 4 山根 1 5 山木 0 6 …

クエリの実行プランを強制する。

いま、クエリのパフォチュをしている。その中でちょっとした問題にぶつかった。本番サーバー(高スペック)で実行すると劇的に遅く(5分)、 ハードウェアスペックのみが異なる開発環境では、予期している速度(5秒)という現象だ。 詳しく調べていると、本…

ロックヒントとトランザクション分離レベルの組み合わせによる読み取りのWaitパターン

Sqlserverでは、Select文でロックヒントを記述することができる。■ロックヒント http://msdn.microsoft.com/ja-jp/library/ms177634.aspxトランザクション分離レベルとヒントの組み合わせによって、クエリのブロック状況が異なるので、注意が必要。とくに、…

トリガのテンプレート

SQLServerのトリガーを作ったので、テンプレートとしてあげときます。target_table (トリガ設定テーブル) カラム 型 col_1 int identity col_2 nvarchar(50) trgger_ins_data(トリガ実行結果登録テーブル) カラム 型 ID int identity Msg nvarchar(50) …

SQLServer2005から新しく追加された「スナップショット分離レベル」の動作

スナップショット分離レベル(Snapshot)は、リードコミッテッド分離レベル(Read Committed)と同じロックの動作をします。 つまり、読み取りの操作時に、データに対して共有ロックをかけません。 スナップショットとリードコミッテッドの違うところは、反…