1

2 秒かかるクエリを実行していますが、パフォーマンスは向上するはずです。そのため、SQL Managementmenet Studio から実行計画の詳細を実行すると、コストが 70% であるプロセスの「ステップ」が見つかりました。

ここに画像の説明を入力

次に、アイテムを右クリックすると、「インデックスの詳細が見つかりません」というオプションが見つかりました。それをクリックすると、推奨事項を含むクエリが生成されます。

/*
Missing Index Details from SQLQuery15.sql - (local).application_prod (appprod (58))
The Query Processor estimates that implementing the following index could improve the query cost by 68.8518%.
*/

/*
USE [application_prod]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[cloud_document] ([isactivedocument])
INCLUDE ([objectuid])
GO
*/

だから私の質問は、クエリを実行するとどうなるのですか? それは私のデータベースに影響を与えますか、それを適用した後に副作用や副作用はありますか?

どうもありがとうございました。

4

2 に答える 2

2

クエリを実行すると、指定したテーブル (cloud_document) にインデックスが作成されます。

これにより、読み取りパフォーマンスが向上し、パフォーマンス/クエリ時間が改善されます。

また、INSERT/UPDATE/DELETE ステートメントの実行中にインデックスを維持する必要があるため、これらのステートメントのパフォーマンスにも影響します。

インデックス作成の使用、インデックスの数、およびインデックスの構成要素の決定は、正確な科学というよりも芸術です。

インデックス、最適化、および統計の実際のメンテナンスは自動化できるものですが、インデックスとは何か、およびそれらが何をするのかをよりよく理解するまで、そのままにしておく必要があります。

インデックス作成に関するドキュメントを読み始めることをお勧めします。

SQL Server インデックスへの階段から始めることができます

于 2013-07-17T04:42:13.667 に答える
0

文字通りの意味は、テーブル [dbo].[cloud_document] の isactivedocument にインデックスを作成するように指示することです。そこからテーブルをフィルター処理する条件として isactivedocument を使用していると仮定し、列 objectuid を選択します。何かのようなもの

select objectuid, ... from [dbo].[cloud_document] where isactivedocument = 0/1

「Clustered Index Scan (70%)」は、クラスター化インデックスの問題ではないことに注意してください。isactivedocument にインデックスがないことを意味し、SQL エンジンはクラスター化されたインデックスをスキャンして必要なものを見つける必要があります。だからこそ、ものすごいプレッシャーがかかる。isactivedocument にインデックスを作成したら、もう一度プランを確認すると、ノードが「インデックス シーク」になることがわかります。これは、必要なものを見つけるためのはるかに高速な方法です。

通常、データベースへのストレスが主にクエリによるものである場合、新しいインデックスがシステムに大きな害を及ぼすことはありません。先に進んで、インデックスを作成してください。もちろん、インデックスの数量をできるだけ少なくする必要があります。

于 2013-07-17T05:26:46.903 に答える