かるあ のメモ

アクセスカウンタ

zoom RSS SQL Server のなかみ

<<   作成日時 : 2008/07/10 18:53   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Ichikawaさんに勧められて インサイド SQL Server 2005 クエリチューニング&最適化編 を読み始めました。
今の会社に入るまではずっと Oracle ばかり触っていて SQL Server には疎かったんでちょうどいいタイミングでした。
パフォーマンスチューニングを行うためにはどうしたらいいのかがかなり詳しく書かれています。

まだ3章の途中なんだけれど、特にこのあたりは知りたいことがしっかり載っていてうれしい。

・どうやったらインデックスを使ったSQLを組むためにはどうするか、
・パフォーマンスカウンタの読み方
・実行プランの読み方

SQL Server の実行計画ってグラフィカルなのは良いんだけれど、大きなSQLを書いたときに全体がわからなかったんですよね。
Oracle のようにテキストで出せたらいいな〜と思っていたら、こんな感じでテキスト出力できるとのこと。


こんなSQLを実行すると、
SET SHOWPLAN_TEXT ON
GO
SET SHOWPLAN_ALL ON
GO
select m.name, s.definition
 from sys.sql_modules s
     join sys.procedures m
       on s.object_id = m.object_id

StmtText
-----------------------
SET SHOWPLAN_TEXT ON

(1 row(s) affected)

StmtText
----------------------
SET SHOWPLAN_ALL ON

(1 row(s) affected)

StmtText
---------------------------------------------------------------------------------------------------------------------------

select m.name, s.definition
 from sys.sql_modules s
     join sys.procedures m
       on s.object_id = m.object_id

(1 row(s) affected)

StmtText
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |--Compute Scalar(DEFINE:([Expr1004]=object_definition([aspnetdb].[sys].[sysschobjs].[id] as [o].[id])))
      |--Nested Loops(Inner Join, OUTER REFERENCES:([o].[id]))
           |--Filter(WHERE:(has_access('CO',[aspnetdb].[sys].[sysschobjs].[id] as [o].[id])=(1)))
           |    |--Clustered Index Scan(OBJECT:([aspnetdb].[sys].[sysschobjs].[clst] AS [o]), WHERE:([aspnetdb].[sys].[sysschobjs].[nsclass] as [o].[nsclass]=(0) AND [aspnetdb].[sys].[sysschobjs].[pclass] as [o].[pclass]=(1) AND ([aspnetdb].[sys].[sysscho
           |--Filter(WHERE:([aspnetdb].[sys].[sysschobjs].[type] as [o].[type]='TR' AND has_access('TR',[aspnetdb].[sys].[sysschobjs].[id] as [o].[id],[aspnetdb].[sys].[sysschobjs].[pid] as [o].[pid],CONVERT_IMPLICIT(int,[aspnetdb].[sys].[sysschobjs].[nsc
                |--Clustered Index Seek(OBJECT:([aspnetdb].[sys].[sysschobjs].[clst] AS [o]), SEEK:([o].[id]=[aspnetdb].[sys].[sysschobjs].[id] as [o].[id]),  WHERE:([aspnetdb].[sys].[sysschobjs].[pclass] as [o].[pclass]<>(100)) ORDERED FORWARD)

(6 row(s) affected)


インサイドMicrosoft SQL Server 2005 クエリチューニング&最適化編 (マイクロソフト公式解説書)
日経BPソフトプレス
Kalen Delaney、Sunil Agarwal、Craig Freedman、Adam Machanic、Ron Talmage

amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文
SQL Server のなかみ かるあ のメモ/BIGLOBEウェブリブログ
文字サイズ:       閉じる