SQL, Server, のチューニングについてまとめてみる の検索結果:
…ummary of SQL Server Tuning - Part 1 - (Examine indexes) - 都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo "Let's start with a quick way to see how many indexes are missing for a query that executing the against …
…that the "SQL Server Tuning" series ended with "Part 1” lol. So I thought it would be a good idea to end with Part 1, so I'd like to put together Part 2 (Too random ….). In this post, I explain about "filtered index". This feature added in …
…tuning of SQL Server. First, let's look at how to extract queries that don't use indexes, SQL Server tuning makes heavy use of dynamic management views that start with "dm_*". At this time, mainly use the following three tables to find quer…
The year is almost over. There weren't many articles this year, either. Next year will be a year of new challenges, so I will try my best to write articles next year. Have a happy new year, everyone!Following article is still being read. Tu…
…ン インデックスは、SQL Server の Enterprise Edition、Developer Edition、および Evaluation Edition でのみ使用できます。 管理と拡張性だけではなく、WHERE 句の条件として指定することによりパフォーマンスが飛躍的に向上します。それでは早速実験してみましょう。パーティション分割されたテーブル(パーティションID 1から20 まで存在するテーブル)にクエリを投げてみます。パーティションが 20 存在し、アクセスし…
一応、その 24 でww ryuchan.hatenablog.com ここ二日寝続けたので、腰痛が悪化...(´;ω;`)カラー版 9割の腰痛は自分で治せる (中経の文庫)作者: 坂戸孝志出版社/メーカー: KADOKAWA/中経出版発売日: 2013/12/17メディア: 文庫この商品を含むブログを見る一回3秒 これだけ体操 腰痛は「動かして」治しなさい (講談社+α新書)作者: 松平浩出版社/メーカー: 講談社発売日: 2016/07/21メディア: 新書この商品を含む…
…件数が多いことから SQL Server はクラスターシークから Parallel 処理に切り替えますので、その後の処理もすべて Parallel 処理に切り替わりますので、余計な CPU コストも使用することになってしまいます。 すこしトリッキーかもしれませんが、下記のように変更するのも一つの手法です。 ;WITH SalesOrderDetail_CTE( SalesOrderID, SalesOrderDetailID, CarrierTrackingNumber, O…
…薄めになったりww SQL Server とあまり関係ない記事増やしたりww 来年は記事数を目標にするのはやめます。ryuchan.hatenablog.comryuchan.hatenablog.com シアトルは良い思い出でになりました。色々な事由により、もう行くことはないような気もします。(環境が変われば...)ryuchan.hatenablog.comryuchan.hatenablog.comryuchan.hatenablog.comryuchan.hatena…
…をまとめてみます。 SQL Server のチューニングについてまとめてみる - その1 - ( インデックスの調査 )ryuchan.hatenablog.comsys.dm_db_missing_index_group_stats、sys.dm_db_missing_index_groups および sys.dm_db_missing_index_details を使った不足インデックスの調査です。 SQL Server のチューニングについてまとめてみる - その20 …
最近、SQL Server の診断をする機会が増えてきています。時間がない中でやっていることもあり、超簡易診断しかできていませんが....その方法について説明します。 データベースを作成します。 とりあえず 2G くらいにしておきましょう。 データベースが作成されました。 下記のクエリを SQL Server Management Studio で実行します。 USE [データベース名] SELECT st.text, qp.query_plan, qs.* INTO Per…
… 色々なシステムの SQL Server に関するレビューをしていると、まだまだパラメータ化されていないクエリが多数存在します。それによる影響としては、 クエリのパターンが毎回変化するため、その都度 SQL Server 上でリコンパイルが走ってしまい、サーバに負荷をかけてしまう。 キャッシュプランがクエリのパターン数分キャッシュされることになり、キャッシュとして無駄なものをサーバに抱えてしまう。 などが挙げられます。 よくあるパターンとしては、下記のような関数を作成し、クエ…
…の再利用率が悪いと SQL のコンパイルが頻繁に実行されてしまい、その結果 CPU 使用率が高くなってしまいます。私の経験ではコンパイルに要した時間は最高で35秒です。DB サーバの負荷が異常に上がってしまい、変な汗をかいた記憶がありますwww 下記の記事で少し触れています。 ryuchan.hatenablog.com さて、クエリの再利用率ですが sys.dm_os_performance_counters を使用します。( カウンターは、Batch Requests/s…
下記の資料は、SQL Server 2008 ベースですが、SQL Server 2012 以上のエディションにも問題なく適用できる手法です。 The Data Loading Performance Guide パーティションテーブルへのデータインポートであれば、下記の部分から参考になります。 Bulk Loading a Partitioned TableBulk loading into partitioned tables provides the fastest p…
… @str これを、SQL Server 2012 からサポートされた CONCAT 関数を使用すると下記の通りになります。 DECLARE @str NVARCHAR(MAX) SET @str = ( SELECT CONCAT( 'a=', CAST( OrderTrackingID AS NVARCHAR ), ',b=', CAST( SalesOrderID AS NVARCHAR ) , ',c=', CarrierTrackingNumber ) FROM S…
またも、移動時間に記事を書きます。前回の記事に対して補足です。 ryuchan.hatenablog.com データインポート時は下記のようにしたほうがよさそう。 Sales.OrderTracking のクラスタ化インデックスおよび非クラスタ化インデックスをすべて削除する。 DBCC TRACEON(610,-1) を実行する。 bcp AdventureWorks2016CTP3.Sales.OrderTracking in "C:\exportfile.txt" -c …
…alhost -T SQL Server Management Studio で下記のコマンドを実行し、Sales.OrderTracking のデータを消去します。 TRUNCATE TABLE Sales.OrderTracking 先ほどエクスポートしたデータをインポートします。下記のコマンドをコマンドプロンプトで実行します。 bcp AdventureWorks2016CTP3.Sales.OrderTracking in "C:\exportfile.txt" -c…
今週のお題「マイベストエントリー」 はてなブログのランキングだと、下記の記事が一番読まれてそう。 ryuchan.hatenablog.com DSC-QX10のC#でのプログラミングも結構読まれてる。 ryuchan.hatenablog.com ryuchan.hatenablog.com 個人的には、下記の記事が好きです。 ryuchan.hatenablog.com りんなの記事もいいかな。 ryuchan.hatenablog.com ryuchan.hatenab…
…eries. 通常、SQL が発行されるとプランがキャッシュされます。過去のブログでキャッシュプランの確認方法を書いていますので、確認してみてください。SQL Server のチューニングについてまとめてみる - その7 - ( プランキャッシュの状態を確認する ) - 都内で働くSEの技術的なひとりごとryuchan.hatenablog.com 実験するまでもないんですが、質問される可能性があるので実験しますー。まず、下記のような何の変哲もないクエリを実行してみます。 D…
…敵♪ 近々、社内で SQL Server の勉強会を実施するのですが、そろそろ勉強会の資料を作らないといけません。TIPS 的なものにしたいと思うので、ブログからネタを集めたいと思います。ゼロから考えるのは、時間的にちょっと辛い...便利な SQL の関数とか、構文とか、その他色々まとめてみる - その1 ( OFFSET n ROWS - FETCH NEXT n ROWS ONLY ) - - 都内で働くSEの技術的なひとりごとryuchan.hatenablog.com…
…novo with SQL Server 2014 です。 試してみる 早速試してみましょう。無駄にキャッシュされている可能性が高い sys.dm_exec_cached_plans の usecounts が一回のものを抽出します。 SELECT [SQL文] = st.text, [SQLタイプ] = cp.objtype, [キャッシュ容量] = cp.size_in_bytes FROM sys.dm_exec_cached_plans cp CROSS APPLY …
…novo with SQL Server 2014 です。 試してみる インデックス統計の情報を参照するために、sys.stats および sys.dm_db_stats_properties を使用してクエリを作成してみましょう。下記のクエリを SQL Server Management Studio で実行してみましょう。 SELECT [テーブル名] = t.name, [統計名] = s.name, [統計の自動作成] = s.auto_created, [NOREC…
…みたいと思います。 SQL Server のチューニングについてまとめてみる - その7 - ( プランキャッシュの状態を確認する ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その7 - ( プランキャッシュの状態を確認する ) - 都内で働くSEの技術的なひとりごと クエリの内容は下記の通りです。 SELECT [SQL文] = SUBSTRING(st.text, (qs.statement_start_off…
… Azure 上の SQL Server 2014 を使用します。 早速試してみる 以下のクエリを実行してみましょう。 select * from [Production].[WorkOrder] 上図の下の画像で書きのように出力されています。 (72591 row(s) affected) これは SQL Server がクエリ実行時に何件ヒットしたか、更新したかなどをクライアント側へ通知しています。これもネットワークのオーバーヘッドとなってしまうので、無効化したほうがいい…
…て少し触れました。 SQL Server のチューニングについてまとめてみる - その12 - ( SQL Server のメモリ関係で必要なカウンタを抽出してみる ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その12 - ( SQL Server のメモリ関係で必要なカウンタを抽出してみる ) - 都内で働くSEの技術的なひとりごと 上記の記事では、SQL Server Management Studio を使用…
…マンス計測で必要な SQL Server のパフォーマンスカウンタ ( sys.dm_os_performance_counters ) をまとめていきたいと思います。今回はメモリー関連です。 使用する環境を説明してみる 久しぶりの Microsoft Azure です。特に意味ないですが、A7 マシン上の SQL Server 2014 を使用したいと思います。 メモリー関連のカウンタをまとめてみる メモリー関連のパフォーマンスカウンタは、かなりの数がありますので、その中で…
…てみる 開発環境の SQL Server って容量監視とか意外とやらないですよね。プログラムを組んでやってしまいがちですが、SQL Server の動的管理関数を使ったクエリでも容量監視はできますので、紹介したいと思います。 使用する環境を説明してみる Microsoft Azure 上の SQL Server 2014 を使います。 実験してみる 動的管理関数である、sys.dm_os_volume_stats (Transact-SQL) を使ってみましょう。使い方は下記…
…(Transact-SQL) を使用して最適化情報を取得したいと思います。 使用する環境を説明してみる 久しぶりに Azure 環境を使います。SQL Server 2014 です。 早速ためしてみる 下記のクエリを SQL Server Management Studio で実行します。 select * from sys.dm_exec_query_optimizer_info 個別のステートメント (クエリ) の最適化ごとの平均経過時間 (秒単位)や内部コスト単位での、…
…て思い知りました。 SQL Server のチューニングについてまとめてみる - その10 - ( 実行プランの StatementText の中に、調査用に使用するための文字列を埋め込んでみる ) - 都内で働くSEの技術的なひとりごと SQL Server のチューニングについてまとめてみる - その10 - ( 実行プランの StatementText の中に、調査用に使用するための文字列を埋め込んでみる ) - 都内で働くSEの技術的なひとりごと 下記のような記号で …
…とを説明してみる 『SQL Server のチューニングについてまとめてみる』も今回で10回目になりました。それを記念してブログを『はてな記法 』で書いてみます。( 何で記念に『はてな記法』なのかは意味不明ですが... ) 今回は、実行プラン中に独自文字列を保持するようにしてみます。 使用する環境を説明してみる 私の Windows 8.1 Update1、64ビット 上で 動作している SQL Server 2014 を使用します。データベースは、AdventureWork…
…上で 動作している SQL Server 2014 です。使用するデータベースは、AdventureWorksDW2014 です。 実際にためしてみる では、早速下記のクエリを SQL Server Management Studio で実行してみましょう。( なんか適当なクエリになってます。 ) 1ページあたりの容量は 8KByte なので、memory_usage、user_objects_alloc_page_count、user_objects_dealloc_pag…