PASSJアフタースクール

会社帰りに通える、少人数で基礎から徹底して学べる

  PASSJブログ :: ホーム :: 連絡をする :: RSS  :: ATOM :: Login
  66 投稿数 :: 38 ストーリー :: 173 コメント :: 149 トラックバック

ニュース

アフタースクール
★PASSJ スタッフ募集中



コメント書き込み
[今週の投票]

スケジュール

  • 次回開催決定時に
    お知らせいたします。

記事のカテゴリ

過去の記事

カテゴリ

イメージギャラリ

PASSJ関連リンク

1Day Seminarで大好評の 技術顧問 梅田氏によるパフォーマンスチューニング講座を開きます

■概要

■内容

  • 受講対象
    • SQL Server 2000 のパフォーマンス向上 に興味のある方
  • 講義内容
    • SQL Server 2000 を使ったシステムにおいて、パフォーマンスの高いアプリケーションを
      開発するために知っておかなければならない基礎知識、ツールなどについて講義いたします。
  • お勧め
    • インデックスや制約の使い方に自信のない方
    • クラスタ化インデックスの特性を知りたい方
    • オプティマイザの振る舞いを確認してみたい方
    • テーブル結合方法の種類と特徴を知りたい方
    • 環境構築についての基礎知識を得たい方
    • サーバーの監視機能について知りたい方
  • 前提知識
    • SQL Server 2000 をさわったことがある方

■講義項目

  1. インデックスと制約
    • インデックスと制約の基礎知識
    • 複合インデックス作成時の列順番
    • SQL (クエリ) 処理の流れ
    • オプティマイザ
    • クラスタ化と非クラスタ化インデックス
    • カバリングインデックス
    • マルチインデックス
    • インデックスによる更新パフォーマンスへの影響
    • 制約による更新パフォーマンスへの影響
  2. テーブルの結合
    • ネスティッドループジョイン (Nested Loop Join)
    • マージジョイン (Merge Join)
    • ハッシュジョイン (Hash Join)
    • クエリのヒントの有効性検証
    • 内部結合と外部結合の比較
    • AND 検索と OR 検索と UNION 検索の比較
    • インデックスビュー
  3. 統計情報と保守計画
    • 統計情報に格納するデータ
    • 統計情報の作成と更新
  4. 複数サーバー、データベース
    • 分散クエリとリンクサーバー
    • リモートプロシージャコール (RPC)
  5. アプリケーション開発
    • セット中心のプログラム
    • ストアドプロシージャの活用
    • パラメータ化クエリの活用
  6. 環境と監視
    • ファイルの分散とファイルグループ利用
    • 環境設定オプション
    • データページとインデックスページの再構成
    • サーバーの監視
投稿日時 : 2005年6月8日 16:46

コメントを追加

# PASSJ ウェブログ参照トップ20 (2005/06/02~2005/06/16) 2005/06/16 1:00 河端善博の .TEXT でウェブログ
PASSJ ウェブログ参照トップ20 (2005/06/02~2005/06/16)

# PASSJ ウェブログ参照トップ20 (2005/06/21~2005/07/05) 2005/07/05 13:17 河端善博の .TEXT でウェブログ
PASSJ ウェブログ参照トップ20 (2005/06/21~2005/07/05)

# re: 7/9(土)『 SQL Serverパフォーマンスの基礎 』講座開催! 2005/07/14 12:11 アフタースクール事務局
講師からの内容訂正及び補足説明を掲載いたします。

●P28 FillFactorとページ分割
(誤)FillFactorはインデックスのみ
(正)FillFactorはデータページとインデックスの両方で指定可能
注:Create Table文で[WITH FILLFACTOR = fillfactor]
というキーワードを付けて指定できます。

●P28 FillFactorとページ分割
(誤)FillFactorはインデックスのみ
(正)FillFactorはデータページとインデックスの両方で指定可能
注:
Create Table文で[WITH FILLFACTOR = fillfactor]
というキーワードを付けて指定できます。

●P36 カバリングインデックス 左の例
(質問)左の例はカバリングインデックスじゃないのでは?
(検証結果)左の例はカバリングインデックスでOKでした。
注:
複合キー(列A+列B)を持つテーブルに対して、
select A,B ~where 列A = ~ならカバリングインデックスだが
select A,B ~where 列B = ~の場合は、そもそもインデックスが使えないのでカバリングインデックスにならないのではという質問でした(なるほど…)。

検証のために、左側の例のselect句の後ろに、,discount という非キー列を
追加したところ、今度は同じPKのIndex Scanながら、
今度はBookmark Lookupが挿入されました(このテーブルはヒープです)。

つまり、この左の例はインデックスが使えない検索なのに、select句の指定列を見てカバリングを使えるからということで非クラスタ化主キーのIndex Scanを選んでいると思います(賢いですね)。
ちなみに、where productid between 100 and 102の代わりに
discount = という条件で検索したところ、今度はTable Scanとなりました。

●P54 Cハッシュジョインの効果的な組み合わせ
a□ソートされた状態で結果を出力する
b□2つのテーブルを結合する有効なインデックスがない
c□親テーブルと子テーブルがともに小さい、またはインデックスで絞れる。
という設問の回答のaとbにチェックがあったので、思わずずれていると説明しましたが、cも不適切な回答でした。ここはbのみ正解とします。

注:
ハッシュ結合については、下記のように説明されています。
『結合条件に等価条件(=)が指定され、大量のレコード、あるいは表の大部分を結合する場合に有効な結合方法。』

●テキスト外の質問 「Group By句でインデックスは有効か?」
昔の記憶を頼りに「使われないと思いますが…」と回答したのですが、念のため調べてみました。
結果:基本的には使われません。
(例)
Index Aを用意しておいて
select A,sum(B) from T Group by A
の場合はインデックスが使われず、テーブルスキャンとなる。
(注)
ただし、この場合に複合インデックスA+Bを作成しておくと、このインデックスが使われて検索が速くなる場合があります。(インデックスガバメントということですね)。上記OrderDetails1で試してみたところ、Group by OrderIDのときは使われ、Group by OrderID,ProductIDのときはテーブルスキャンになりました)。


# 2005/07/09(土) 【写真】 SQL Server パフォーマンスの基礎 2005/09/18 13:13 PASSJアフタースクール
2005/07/09(土) 【写真】 SQL Server パフォーマンスの基礎

コメント

タイトル:
名前:
Url:
コメント: