0

私はいくつかのパフォーマンステストを行っていますが、SQLのパフォーマンスは、少し前のデータベースよりも新しいデータベースの方がはるかに遅いようです。その理由と、DBをプライミングする方法を知りたいです。作成後は少し良くなり、パフォーマンステストがより正確になります。

私のポイントを示すために、私はここに次のことを行うテストアプリを持っています:

  1. データベースとテストテーブルを作成する
  2. いくつかの行を挿入します
  3. テーブルを切り捨てます
  4. より多くの行を挿入します

2は4の約1.5倍の時間がかかります

4

2 に答える 2

1

データベースがRAMにないことが原因である可能性があります。データベースが作成されたからといって、それがRAMにロードされているとは限りません。SQL Serverは、データベースが使用されている場合にのみそれを実行し、一定期間使用されていない場合はそれらを解放する可能性があります。キャッシングに似ています。

データベースを作成した後、すべてがRAMにあることを確認するために、テーブルからcount(*)を選択してみてください。その場合、2と4がほぼ同じ時間枠で動作することを期待します。

ああ、自動車の成長についてのコメントを見たところです。これは多くのことを説明する可能性があり、テーブルを切り捨てるとそのスペースが使用可能になり、サーバーが新しいページを割り当てる必要がなくなります。-良いコメントlnu。

テストする前に、データとログファイルを500 mbに設定して、ファイルの増大が問題にならないことを確認してくださいに似たもの。

CREATE DATABASE [TestDB] ON  PRIMARY 
( NAME = N'TestDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\TestDB.mdf' , SIZE = 512000KB , FILEGROWTH = 10%)
 LOG ON 
( NAME = N'TestDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\TestDB_log.ldf' , SIZE = 512000KB , FILEGROWTH = 10%)
GO
于 2012-04-06T06:05:14.713 に答える
0

自動成長に関する犬のメモを試しましたが、これが問題が発生する理由のようです。

于 2012-04-06T06:20:06.010 に答える