Sql server SQL查询执行时间过长(SQL server 2008 R2)
我的应用程序在执行SQL查询时出现问题。我附加了SQL探查器以查看问题 像这样的疑问Sql server SQL查询执行时间过长(SQL server 2008 R2),sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我的应用程序在执行SQL查询时出现问题。我附加了SQL探查器以查看问题 像这样的疑问 SELECT abc_id FROM abc_Master WHERE abc_name = @abcName COLLATE SQL_Latin1_General_CP1_CS_AS AND (status=''active'' OR status=''live'') 执行需要60.102秒 我注意到服务器探查器跟踪列表中此查询日志上方有一条审核登录日志记录 -- network protocol
SELECT abc_id
FROM abc_Master
WHERE abc_name = @abcName COLLATE SQL_Latin1_General_CP1_CS_AS
AND (status=''active'' OR status=''live'')
执行需要60.102秒
我注意到服务器探查器跟踪列表中此查询日志上方有一条审核登录日志记录
-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
这是造成延误的原因吗?为什么执行查询需要60秒 有多少行具有abc_Master?审核登录事件仅指示新连接(或者默认情况下还显示现有连接)。这没有关系。显式的
COLLATE
子句可能意味着不会使用abc\u name
上的索引。执行计划是什么样子的?如果需要,为什么不将列定义为SQL\u Latin1\u General\u CP1\u CS\u AS
排序规则?(1)是否有(abc\u name,status
)的索引??(2) 为什么要指定特定的排序规则?当SQL Server需要将字符串从一个排序规则转换为另一个排序规则时,这可能会导致大量性能问题……abc_Master只有23个排序规则records@Rajneesh-在这种情况下,您可能会被未结交易阻止。