2011-12-26 12 views
3

私は最近、SQL Server 2000を搭載したDelphi 7からSQL Server 2008を搭載したDelphi 2010に移行しました。私はdbExpressを使用しています。私は、システムが遅く、不安定になった多くのデータを持っている上のサイトことを発見した新しいバージョンをインストールした後dbExpressとSQL Server 2008が遅い

dbExpressとSQL Server 2008の間に問題があるかどうかを教えてください。助けてください!!!!!

+1

**スロー**、**不安定**を定義する - 私たちにもっと何かを与えてください!これはちょっと広すぎます..... –

+0

Delphi 7とSQL Server 2008を使用している間、Delphi 2010とSQL Server 2008を使用しているときと同じプロセスで、 、検索、掲示など – user734781

+0

ありがとうございました! – user734781

答えて

1

プロファイラトレースを実行すると、SQL Serverにボトルネックがあるかどうかを確認できます。デフォルトのプロファイラトレース(TextData for RPC:Completedを含む)は、開始するには十分なはずです。

プロファイラーのトレースを解析して、最も長い時間がかかることを確認することができます。トレースをテーブルに簡単にロードして分析することができます。表にロードすると、duration列はマイクロ秒単位で表示されます。トレースファイルをテーブルに読み込むためのより簡単な方法については、関数fn_trace_gettableを参照してください。

パフォーマンスの低下、特に大きな変更後の一般的な原因は、インデックスの不良です。 SQL Server 2005以降、オプティマイザはインメモリ構造内に見たインデックスを格納します。これらは、sys.dm_db_missing_index_details、sys.dm_db_missing_index_groupsおよびsys.dm_db_missing_index_groups_statsの動的管理ビューでアクセスできます。ここで

が不足しているインデックスを生成するための基本的なコードを含む独自の不足しているインデックスのレポートを作成するための簡単なサンプルSQLです。

select 
d.statement 
, d.equality_columns 
, d.inequality_columns 
, d.included_columns 
, s.user_seeks Seeks 
, s.last_user_seek 
, cast (s.avg_total_user_cost as decimal (9,2)) Cost 
, s.avg_user_impact [%] 
, 'CREATE INDEX MissingIndex_ ON ' + d.statement + '(' 
    + case when equality_columns IS NOT NULL then equality_columns else '' end 
    + case when equality_columns IS NOT NULL AND inequality_columns IS NOT NULL then ', ' else '' end 
    + case when inequality_columns IS NOT NULL then inequality_columns else '' end 
    + ')' 
    + case when included_columns IS NOT NULL then ' INCLUDE (' + included_columns + ')' else '' end 
AS SQL 
from sys.dm_db_missing_index_details d 
INNER JOIN sys.dm_db_missing_index_groups g ON d.index_handle = g.index_handle 
INNER JOIN sys.dm_db_missing_index_group_stats s ON g.index_group_handle = s.group_handle