昨日、私のSQL Serverデータベースは大丈夫でした。今日はほとんど使用できません-いつ攻撃したかによって、5から20倍の速度で減速します。
一部のデータは夜間のロードプロセスでサーバーに追加されましたが、データベースにそれほど影響を与えるはずのボリュームのようなものはありません。約50,000のプレーンテキストレコード(XMLやその他のフリッパーなし)。
今朝サーバーをリブートする前にパッチを当てました。ただし、パッチが適用された他のデータベースサーバーは、動作が異なります。
リソースモニターは、ディスクIOに問題があることを示唆しているようです。.mdfファイルの容量のほぼ100%で、データベースで実際にほとんど発生していない場合でも、常に実行されています。Templog.ldfへのアクセスも非常に高くなっています。
ここには誰もエキスパートDBA(私たちはSQLスキルの量がさまざまな開発者です)は誰もいません。私たちは、sp_updatestatsを実行して、大きなインデックスのいくつかを別のディスクに移動しようとしましたが、役に立ちませんでした。
私はこれがパッチと関係があるに違いないと思います-それはあまりにも多くの偶然のようです。同僚は、mdfのサイズを増加させる原因となったデータ負荷が、実行計画の非効率化の原因となったと確信しています。
これは一体何が原因ですか?どのようにしてそれを見つけ出し、それを修正するために何ができるでしょうか?
編集:
を使用しsp_WhoIsActive
ても、異常なことは何も明らかにされません。自分のsprocの使用と、現在別のインデックスを移動しようとしている同僚からのいくつかのコマンドを登録します。それはおそらく現在DBを保持していますが、以前と同じように実行されていませんでした。
SQL Server 2008 R2の標準バージョンです。SELECT @@VERSION
与える:
Microsoft SQL Server 2008 R2(SP2)-10.50.4033.0(X64)
2014年7月9日16:04:25
Copyright(c)Microsoft Corporation Standard Edition(64-bit)on Windows NT 6.1(Build 7601:Service Pack 1)(Hypervisor )
サーバーには、72GBのRAMと3つのクアッドコア2GHzプロセッサーが搭載されています。
パッチはWindowsにのみ適用されました。パッチ以外の変更はありませんでした。
選択した設定:
_id name value minimum maximum value_in_use description is_dynamic is_advanced
1540 min memory per query (KB) 1024 512 2147483647 1024 minimum memory per query (kBytes) 1 1
1541 query wait (s) -1 -1 2147483647 -1 maximum time to wait for query memory (s) 1 1
1543 min server memory (MB) 0 0 2147483647 16 Minimum size of server memory (MB) 1 1
1544 max server memory (MB) 65536 16 2147483647 65536 Maximum size of server memory (MB) 1 1
更新:インデックスとテーブルを別のディスクパーティションにシフトすると、状況が改善されるようです。どのようにして私たちが転換点に到達できたのか、そのような劇的な結果で突然突然混乱します。
SELECT * FROM sys.configurations;
-あなたはのvalue, value_in_use
ようなものにしたいですmax server memory (MB)
。また、SELECT @@VERSION;
ハイパーバイザーにあるかどうか、昨日以降(または最後にSQL Serverを再起動した後)にホストで変更があったかどうかだけでなく、のビルド番号も役立ちます。