gpt4 book ai didi

delphi - dbExpress 和 SQL Server 2008 速度慢

转载 作者:行者123 更新时间:2023-12-03 15:58:36 25 4
gpt4 key购买 nike

我最近从带有 SQL Server 2000 的 Delphi 7 迁移到带有 SQL Server 2008 的 Delphi 2010。我正在使用 dbExpress。

安装新版本后,我发现有大量数据的网站系统变得缓慢且不稳定。

谁能告诉我 dbExpress 和 SQL Server 2008 之间是否存在问题?请帮忙!!!!

最佳答案

通过执行探查器跟踪,您可以查看 SQL Server 上是否存在任何瓶颈。您的默认探查器跟踪(包括 RPC:Completed 的 TextData)应该足以开始使用。

可以分析探查器跟踪以查看什么花费了最长的时间。您可以轻松地将跟踪加载到表中并在那里进行分析。请注意,加载到表中时,持续时间列以微秒为单位。有关将跟踪文件加载到表中的更快方法,请参阅函数 fn_trace_gettable。

性能不佳的一个常见原因(尤其是在重大更改之后)是索引不良。自 SQL Server 2005 以来,优化器将其希望看到的索引存储在内存结构中。这些可以通过动态管理 View 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

关于delphi - dbExpress 和 SQL Server 2008 速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com