0

データベースを設計しました。インデックス付きの列も、最適化のためのコードもありません。私は特定の列を頻繁に検索するので、特定の列にインデックスを付ける必要があると確信しています。

私の質問は、データベースの一部が遅くなるかどうかをテストするにはどうすればよいですか? ATM 私は sqlite を使用しており、ホスト プロバイダーに基づいて MS Sql または MySql に切り替える予定です。各テーブルに 100,000 レコードを作成するだけで十分ですか? それとも、それは常にsqliteで高速で、1milを実行する必要がありますか? データベースが遅くなる前に 10mil 必要ですか?

また、どのように時間を計りますか?私は C# を使用しているので、StopWatch を使用する必要がありますか、または使用すべき ADO.NET/Sqlite 関数はありますか?

4

2 に答える 2

2

データを追加すると最適な実行プランが変更されるため、時間の経過とともに監視することが非常に重要です。テストする場合は、ほとんどのパフォーマンスの問題を可視化するのに1,000万行で十分ですが、実際のデータと同じカーディナリティ特性をテストデータに入力する必要もあります。SQL Serverには多くのパフォーマンス監視機能(動的管理ビュー、XEvents、SQL Trace / Profiler)が組み込まれていますが、ホストされたソリューションを使用している場合にどれだけアクセスできるかはわかりません。データベースの外部でパフォーマンスを監視するために、ADO.NETはトレースをサポートしていますが、私自身はこれを使用したことがありません。

于 2010-05-07T10:36:43.780 に答える
0

2番目の質問についてSqlLiteのデータベースはMsSqlのようにメモリ内にあるため、SqlLiteはほとんどの場合MsSqlよりも高速です。データベースはハードディスク上にあります。

于 2010-05-07T10:43:19.757 に答える