SQLServer

Viewの基礎

今更ですが、色々調べた時におさらいしたのでついでに。●Viewとは クエリによって内容が定義される仮想テーブル。 実データを持たず、定義のみが保持されているのでViewが参照されると定義に従い動的にデータが取得される。 Viewには以下3種類ある。 ・標準V…

SQLServerがクエリを処理する時の挙動について

色々調べたのでメモ。【そもそも的な部分】 SQLServerはクエリ投げられると自分でクエリの実行方法を選択して実行してくれるらしい。 この実行方法を実行プラン、選択してくれる機能をクエリオプティマイザという。 ここら辺の詳細以下。 ・RDBの心臓部 以下…

SQL Serverオプティマイザと選択する実行プラン の触り。

SQL Server2008 SP1にてクエリが重くてサイトダウン寸前な状況に。 開発・STGででなくて本番でいきなりなったのでそんな状態になって調査が飛んできた。 今回ばかりはManagementStudioの実行プランとMicrosoftのTechNetの二つにすがりました。 つかSQL Serve…

行列変換

相変わらずSQL再入門。今度は列と行入れ替えるので悩みました。[m_c] member_id color 1 赤 1 白 2 青 2 白 3 白 これを メンバーID 赤 青 白 1 ○ ○ 2 ○ ○ 3 ○ こんな感じにしたい。 そんな時は以下SQL select member_id as 'メンバーID' , CASE WHEN SUM(CA…

with使った再帰結合

今更ながらまともに長いSQLを久しぶりに見たので、結合周り再入門的な。 WITH lavels(id, name, level, path) AS (SELECT categories.id, categories.name, 1, CONVERT(varchar(255),categories.name) FROM categories WHERE categories.parent_id = 0 UNION…