More Related Content
PDF
SQL Server パフォーマンス問題対処 Deep Dive PDF
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史 PDF
C34 Always On 可用性グループ 構築時のポイント by 小澤真之 PPTX
PDF
待ち事象から考える、Sql server の改善ポイント PDF
Sql server 2016 always on 可用性グループ new features PPTX
SQL Server Integration Services PDF
SQL Server運用実践 - 3年間80台の運用経験から20の教訓 What's hot
PDF
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ PDF
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa DOCX
Ab initio is one of the popular etl tools that is in the market PPTX
コア・コンテキスト管理 - FIWARE WednesdayWebinars PPTX
PDF
PPTX
PDF
PDF
45分で理解する SQL Serverでできることできないこと PDF
PDF
PDF
[B31,32]SQL Server Internal と パフォーマンスチューニング by Yukio Kumazawa PDF
これからLDAPを始めるなら 「389-ds」を使ってみよう PDF
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証 PDF
PPTX
Zabbix による ms sql監視 ~データベースモニタリング~ odbc PDF
PDF
PPTX
Sql server のバックアップとリストアの基礎 PPTX
Qlik Replicateでのタスクの定義と管理 Similar to C13 SQL Server2012知られざるTips集 by 平山理
PDF
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル PDF
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa PPTX
開発者の方向けの Sql server(db) t sql 振り返り PDF
PDF
Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介 PDF
Sql server 2012 の新機能を 3 つの視点でご紹介(大阪版) PPTX
SQL Server 2019 とともに知る Microsoft Data Platform PDF
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 PDF
Sql server data store data access internals PDF
PDF
PDF
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009 PPTX
PDF
Denali ctp3 always on availability groups 概要 PDF
過去事例から学ぶ SharePoint パフォーマンス問題とその対策 PDF
PDF
Dat004 開発者に捧ぐ「sql server_2016_ PDF
C25 SQL Server 2012 概要と Microsoft の Self-Service BI by Tsuyosi Kitagawa PDF
PDF
まだ統計固定で消耗してるの? - Bind Peek をもっと使おうぜ! 2015 Edition - More from Insight Technology, Inc.
PDF
PDF
Docker and the Oracle Database PDF
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~ PDF
PDF
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン PDF
PDF
PDF
PDF
SQL Server エンジニアのためのコンテナ入門 PDF
Lunch & Learn, AWS NoSQL Services PDF
db tech showcase2019オープニングセッション @ 森田 俊哉 PDF
db tech showcase2019 オープニングセッション @ 石川 雅也 PDF
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー PPTX
難しいアプリケーション移行、手軽に試してみませんか? PPTX
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介 PPTX
PPTX
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』... PDF
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 PPTX
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ... PPTX
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018] Recently uploaded
PDF
AIの平和的利用宣言契約書:人類幸福のための共同作業と倫理指針(CHOIIZUKA+AITeam NagisaProject🌏) PPTX
Codexが単独アプリなったので嗜んでみる。2026/3/19の勉強会で発表されたものです。 PDF
【卒業論文】A Study on Extracting Discussion Perspectives from National Diet of Jap... PDF
産業用IoT翻訳機のブループリント ~ Dragino RS485-LB/LS-JP PDF
スカウター生活はじめました!PythonとiOS SDKを使ったGUIDE01アプリの紹介とデモ PDF
the 8088 Single Board Computer with AMD 8088 bought at junk shop in 1989 C13 SQL Server2012知られざるTips集 by 平山理
- 1.
- 2.
Agenda
Lock 獲得動作の変更
統計情報自動更新の変更
FORCESEEK 機能拡張
クエリプラン収集機能拡張
ページ割り当て状況の確認方法の改善
Cardinality Estimate Framework
©2011 Microsoft Corporation. All Rights Reserved.
- 3.
- 4.
SQL Server 2012より前の動作
クライアント A
SELECT * FROM T
- T はパーティションテーブル
- SCH-S ロックが必要
クライアント B
ALTER TABLE T2 SWITCH PARTITION 1 TO T PARTITION 1
- パーティションをスイッチするDDLを実行
- SCH-M ロックが必要
クライアント C
DDL - SELECT * FROM T WITH (NOLOCK)
Starvation - SCH-S ロックが必要(Dirty Read であっても)
©2011 Microsoft Corporation. All Rights Reserved.
- 5.
SQL Server 2012より前の動作(続き)
SCH-S (スキーマ共有ロック)
- DDL によるスキーマ変更防止
- Dirty Read にも必要
SCH-M
- スキーマ変更ロック
ロック - スキーマ変更時の排他制御
SCH-S とSCH-Mは互換性なし
- 後続の SCH-S が付与され続ける
問題点 - SCH-M は待機し続ける
©2011 Microsoft Corporation. All Rights Reserved.
- 6.
SQL Server 2012の動作
15000 パーティションまで分割可能
パーティション数 DDL Starvation の機会増加
アルゴリズムの変更
- FIFOの採用
- SCH-SはSCH-Mをスキップしない
旧動作への復帰
- トレースフラグ 617
改善策 - 再起動不要
©2011 Microsoft Corporation. All Rights Reserved.
- 7.
- 8.
従来の統計情報更新アルゴリズム
テーブル基数 =< 500 500 回の変更で統計情報を更新
テーブル基数 > 500 500 回+テーブル基数20% の変更で統計情報を更新
テーブル基数が大きい場合は統計情報の更新頻度低
例:
1,000,000,000 件のデータが存在するテーブルの場合
考慮点 1,000,000,000 * 0.2 + 500 = 200,000,500
©2011 Microsoft Corporation. All Rights Reserved.
- 9.
トレースフラグ 2371 の導入
例:
1,000,000,000 件のデータが存在するテーブルの場合
更新タイミング:
SQRT(データ件数*1000) SQRT(1,000,000,000*1000) = 1,000,000
有効なバージョン:
SQL Server 2012 RTM
SQL Server 2008 R2 SP1 以降
再起動不要
©2011 Microsoft Corporation. All Rights Reserved.
- 10.
sys.dm_db_stats_properties 動的管理ビュー
統計情報の内容を出力 サンプル数、更新日時、更新回数などを含む
有効なバージョン:
SQL Server 2012 SP1 以降
SQL Server 2008 R2 SP2 以降
DBCC SHOW_STATISTICS の代替
©2011 Microsoft Corporation. All Rights Reserved.
- 11.
- 12.
FORCESEEK クエリヒント
オプティマイザの決定をオーバライド
SEEK 操作のみを使用してデータにアクセス
FORCESEEK クラスタ化インデックス、非クラスタ化インデックスに有効
©2011 Microsoft Corporation. All Rights Reserved.
- 13.
FORCESEEK クエリヒント
SEEK 操作のみ指定可能
~SQL Server 2008 R2 select * from t with (forceseek)
SEEK 操作に使用するインデックスと列を指定可能
SQL Server 2012 select * from t with with (forceseek (ix(c1, c2)) )
©2011 Microsoft Corporation. All Rights Reserved.
- 14.
- 15.
SQL Server 2008R2 までは…
クエリプラン SQL Server
収集方法 プロファイラ SQLTrace
収集する
OR
収集条件 収集しない 自由度低
収集できない
収集時の負荷 高い 環境が多い
©2011 Microsoft Corporation. All Rights Reserved.
- 16.
SQL Server 2012からは…
ツールの追加 拡張イベント
Duration
OR
収集条件の 収集対象の 収集時の 収集可能な
柔軟な設定 CPU Time 絞り込み可能 負荷軽減 環境の増加
©2011 Microsoft Corporation. All Rights Reserved.
- 17.
サンプルコード
クエリプラン収集イベント: 収集条件:
query_post_execution_showplan CPU使用時間 10 秒以上
CREATE EVENT SESSION test_session
ADD EVENT sqlserver.query_post_execution_showplan(
WHERE ([cpu_time]>=(10000000)))
ADD TARGET package0.event_file(SET filename=N'C:¥Program Files¥Microsoft SQL
Server¥MSSQL11.ENGINE_DEV¥MSSQL¥Log¥test.xel')
WITH (
MAX_MEMORY=4096KB,
EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY=30 SECONDS,
MAX_EVENT_SIZE=0 KB,
MEMORY_PARTITION_MODE=NONE,
TRACK_CAUSALITY=OFF,
STARTUP_STATE=OFF
)
GO
©2011 Microsoft Corporation. All Rights Reserved.
- 18.
- 19.
ページ割り当て状況確認
DBCC IND
~SQL Server 2008 R2 DBCC コマンドのみ DBCC EXTENTINFO データの加工に難あり
動的管理関数:
SQL Server 2012 sys.dm_db_database_page_allocations フィルタなどが容易
©2011 Microsoft Corporation. All Rights Reserved.
- 20.
パラメータなど
sys.dm_db_database_page_allocations
( データベースID,
オブジェクトID,
インデックスID,
パーティションID,
出力オプション) – ‘LIMITED’ / ‘DETAILED’
パラメータ
select * from sys.dm_db_database_page_allocations( DB_ID(‘db1') ,
OBJECT_ID(‘tb1') , NULL , NULL , 'DETAILED' )
go
サンプルコード
©2011 Microsoft Corporation. All Rights Reserved.
- 21.
- 22.
クエリ実行に時間がかかる(終わらない)……
統計情報不正
不適切な カージナリティ
クエリ実行プラン 見積もり不正 インデックス不足
クエリ実行プラン収集:
実行プラン内の不正イテレータの特定
調査方法 estimated = × actual = ○
©2011 Microsoft Corporation. All Rights Reserved.
- 23.
Cardinality estimate framework
SET STATISTICS XML ON
~SQL Server 2008 R2
[Actual]プランの収集 SET STATISTICS PROFILE ON クエリが完了時に取得
Cardinality estimate framework(拡張イベント):
inaccurate_cardinality_estimate イベント
イテレータの実際の出力件数と、見積もり件数との差が閾値を超
SQL Server 2012 えたタイミングでイベント発生
©2011 Microsoft Corporation. All Rights Reserved.
- 24.
イベント発生のしきい値
見積もり行数が1行の場合
オプティマイザがイテレータの見積もり行数を1行と見積もったケース。
イテレータの実際の処理数が2行以上になるとイベントが発生。
見積もり行数が2から100,000の場合
見積もり行数の5倍以上の行数をイテレータが処理するとイベントが発生。
見積もり行数が100,000より大きい場合
見積もり行数が、100,000より大きい場合。
イベントが発生するときの閾値は次の式で算出。
100,000 * (5-1.2) + 1.2 *[見積もり行数].
©2011 Microsoft Corporation. All Rights Reserved.
- 25.
注意が必要なポイント
クエリが効率的に実行されていてもイベントが発生す
ることがある
ノイズ (FALSE POSITIVE ケース)
負荷 内部的には statistics profile の収集が有効化される
- 過少見積もり
パフォーマンスへの影響大
過剰見積もり - 過剰見積もり
不検知 パフォーマンスへの影響小
ノイズ 発生率高
- 並列クエリの見積もり
見積もり行数を単純に並列数で均等に割った値
- 実際に各スレッドが処理する行数
並列クエリ データの配置状況などによって必ずしも均等に処理されるとは限らない
©2011 Microsoft Corporation. All Rights Reserved.
- 26.
©
© 2011Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
26