2011-12-26 136 views
3

我最近從Delphi 7與SQL Server 2000遷移到Delphi 2010與SQL Server 2008.我使用dbExpress。dbExpress和SQL Server 2008慢

安裝新版本後,我發現網站上有很多數據,系統變得緩慢和不穩定。

任何人都可以告訴我dbExpress和SQL Server 2008之間是否存在問題?請幫忙!!!!!

+1

定義**慢**,**不穩定** - 給我們更多的東西繼續下去!這太寬了,因爲它是..... – 2011-12-26 16:56:01

+0

那麼,在正常的同時,使用Delphi 7和SQL-Server 2008的過程中,現在與Delphi 2010和SQL-Server 2008是非常緩慢的,開放表,搜索,發佈等。 – user734781 2011-12-26 17:15:48

+0

謝謝你的時間! – user734781 2011-12-26 17:26:10

回答

1

通過執行分析器跟蹤,您可以看到是否在SQL Server上有任何瓶頸。您的默認探查器跟蹤(包括RPC的TextData:已完成)應該足夠好,可以開始使用。

可以分析探查器跟蹤以查看需要最長時間的事件。您可以輕鬆將曲線加載到表格中並在其中進行分析。請注意,當加載到表中時,持續時間列以微秒爲單位。查看函數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