Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
OS
Uploaded by
Oda Shinsuke
PDF, PPTX
266 views
SQL Server2022_PSPoptimization_pub.pdf
第12回 関西DB勉強会 https://kansaidbstudy.connpass.com/event/268133/
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 7
2
/ 7
3
/ 7
4
/ 7
5
/ 7
6
/ 7
7
/ 7
More Related Content
PDF
What's hyperscale
by
Oda Shinsuke
PDF
Dot net+sql server tips
by
Oda Shinsuke
PDF
Sql server 2019 ざっくり紹介
by
Oda Shinsuke
PDF
Spark on sql server?
by
Oda Shinsuke
PPTX
SQL Server のロック概要
by
Oda Shinsuke
PDF
Blazor 触ってみた
by
Oda Shinsuke
PDF
Linux + PHP でも SQL Server
by
Oda Shinsuke
PPTX
グラフデータベースの話し
by
Oda Shinsuke
What's hyperscale
by
Oda Shinsuke
Dot net+sql server tips
by
Oda Shinsuke
Sql server 2019 ざっくり紹介
by
Oda Shinsuke
Spark on sql server?
by
Oda Shinsuke
SQL Server のロック概要
by
Oda Shinsuke
Blazor 触ってみた
by
Oda Shinsuke
Linux + PHP でも SQL Server
by
Oda Shinsuke
グラフデータベースの話し
by
Oda Shinsuke
More from Oda Shinsuke
PPTX
Sql server 2017 新機能のご紹介
by
Oda Shinsuke
PPTX
Sql server 2017 からはじめる graph データベース
by
Oda Shinsuke
PPTX
Transaction scopeまだダメ
by
Oda Shinsuke
PPTX
Sql serverと他dbの違いを押さえよう!
by
Oda Shinsuke
PPTX
2016年を振り返って
by
Oda Shinsuke
PPTX
Sql world とは
by
Oda Shinsuke
PPTX
開発者の方向けの Sql server(db) t sql 振り返り
by
Oda Shinsuke
PPTX
Sql world とは
by
Oda Shinsuke
PPTX
Ms build 触ってみよう
by
Oda Shinsuke
PPTX
Sql server2014復習とsqlserver2016の紹介
by
Oda Shinsuke
PPTX
Sql server sql database 最新機能紹介
by
Oda Shinsuke
PPTX
Selenium 触ってみよう
by
Oda Shinsuke
PPTX
Sql database のご紹介
by
Oda Shinsuke
PPTX
Sql database のご紹介
by
Oda Shinsuke
PPTX
Sql world を支える技術
by
Oda Shinsuke
PPTX
Sql database でも使えるほにゃらら
by
Oda Shinsuke
PPTX
Sql world とは
by
Oda Shinsuke
PPTX
Jsf アプリ作ったった
by
Oda Shinsuke
PPTX
Sql server 2014 新機能の紹介 改訂版
by
Oda Shinsuke
PPTX
Sql world を支える技術
by
Oda Shinsuke
Sql server 2017 新機能のご紹介
by
Oda Shinsuke
Sql server 2017 からはじめる graph データベース
by
Oda Shinsuke
Transaction scopeまだダメ
by
Oda Shinsuke
Sql serverと他dbの違いを押さえよう!
by
Oda Shinsuke
2016年を振り返って
by
Oda Shinsuke
Sql world とは
by
Oda Shinsuke
開発者の方向けの Sql server(db) t sql 振り返り
by
Oda Shinsuke
Sql world とは
by
Oda Shinsuke
Ms build 触ってみよう
by
Oda Shinsuke
Sql server2014復習とsqlserver2016の紹介
by
Oda Shinsuke
Sql server sql database 最新機能紹介
by
Oda Shinsuke
Selenium 触ってみよう
by
Oda Shinsuke
Sql database のご紹介
by
Oda Shinsuke
Sql database のご紹介
by
Oda Shinsuke
Sql world を支える技術
by
Oda Shinsuke
Sql database でも使えるほにゃらら
by
Oda Shinsuke
Sql world とは
by
Oda Shinsuke
Jsf アプリ作ったった
by
Oda Shinsuke
Sql server 2014 新機能の紹介 改訂版
by
Oda Shinsuke
Sql world を支える技術
by
Oda Shinsuke
SQL Server2022_PSPoptimization_pub.pdf
1.
SQL Server 2022
PSP 最適化の ご紹介 第12回 関西DB勉強会 2023/01/21 @shinsukeoda
2.
SQL Server 2022 GA
してます 色んな機能が追加/強化されています 今日は PSP 最適化について取り上げます Parameter Sensitive Plan optimization - SQL Server | Microsoft Learn
3.
PSP(Parameter Sensitive Plan) SQL
Server はクエリプランをキャッシュする 初回実行のクエリはコンパイル結果をクエリプランキャッシュとして保持 初回実行時のパラメータ値によって、クエリプランが変わることがある クエリ実行時にクエリプランのキャッシュが ある時:キャッシュされたプランで、今回のパラメータ値を渡して実行 ない時:↑で書いたように今回のパラメータ値でコンパイル、出来たプラン をキャッシュ (当然作ったプラン/今回のパラメータで実行) 初回のパラメータが多く利用するパラメータ値では無かったら? あまり使われないパラメータ値に最適なクエリプランをキャッシュ 多く利用するパラメータ値で最適なクエリプランとは限らない PSP 問題=> パラメータに依存するプランの問題!!!!
4.
同一/異なるクエリプランになる例 同一の例 exec sp_executesql N'select
* from [Tbl] where [Id] = @p1', N'@p1 int’, 1 exec sp_executesql N'select * from [Tbl] where [Id] = @p1', N'@p1 int’, 2 ※パラメータの値が違う(1 と 2) が、同じプランで実行される 異なる例 exec sp_executesql N'select * from [Tbl] where [Id] = @p1', N'@p1 int’, 1 exec sp_executesql N'select * from [Tbl] where [Id] = @p2', N’@p2 int’, 1 ※パラメータの値が同じだが、パラメータ名が違うので異なるプランになる
5.
雑な例 インデックス列が条件で 1件しかマッチしないパラメータ値の場合 => index
seek 全体の8割がマッチするパラメータ値の場合 => table scan 初回が8割マッチの値、直後に1件マッチの値で実行されると… 初回:キャッシュにないので、8割マッチの値でプラン作成 => table scan 直後:キャッシュにプランがあるので、そのプランで1件マッチの値で実行 => table scan 1件マッチの値なので、index seek になって欲しい…
6.
別の名前で呼ばれてなかった? パラメータスニッフィング (Parameter Sniffing) プランの後退
(Plan regression) よくある対処方法は? キャッシュされている該当のプランをキャッシュから削除する 再度コンパイルされるように クエリにリコンパイルオプションを設定する 常にコンパイルされるように クエリストアから最適なプランに戻す クエリストアに最適なプランがあるなら 自動チューニング プランの自動修正
7.
PSP 最適化 パラメーターに依存するプランの最適化 -
SQL Server | Microsoft Learn プランを幾つか用意してデータの分布によって使い分けたら良いん じゃね? 低、中、高 で最大3つの実行プランが作られ、実行時パラメータによって、 Dispatcher が最適なプランを使うように振り分ける https://learn.microsoft.com/ja-jp/sql/relational- databases/performance/media/parameter-sensitivity-plan- optimization/parameter-sensitive-plan-boundaries.png?view=sql-server-ver16
Download