来自Web应用程序的SQL Server 2008查询将挂起,直到重新启动

时间:2012-11-21 14:08:09

标签: asp.net sql-server-2008

我有一个使用SQL Server 2008数据库的ASP.NET Web应用程序。一页有搜索功能。要进行搜索,用户会填写所需的字段,并动态创建SQL查询(使用参数)以返回结果。有时,查询会“卡住”并超时,就像每次尝试从该点向前运行相同查询一样。将运行对查询的任何更改(添加或删除标准)。查询执行一些REPLACE和连接。重新启动SQL Server可以解决问题。

知道造成这种情况的原因是什么,除了重新启动SQL服务器之外还有办法清除它吗?

挂在最新实例中的查询。

SELECT TOP (100) PERCENT dbo.JobTicket.dateStamp, dbo.JobTicket.year + '-' + 
    RIGHT('000000' + CAST(dbo.JobTicket.jobNumber AS varchar), 6) AS 
    displayNumber, ISNULL(dbo.Technician.lastName, '') + CASE WHEN 
    ((dbo.Technician.lastname IS NOT NULL) AND (dbo.Technician.firstname 
    IS NOT NULL)) THEN ', ' ELSE '' END + ISNULL(dbo.Technician.firstName, '') 
    AS logfullname, dbo.UserAll_VW.userID, dbo.JobTicket.lastName AS userLastName, 
    dbo.JobTicket.firstName AS userFirstName, dbo.JobTicket.userIDID, CASE WHEN 
    DATALENGTH(dbo.JobTicket.callDescription) > 50 THEN SUBSTRING
    (dbo.JobTicket.callDescription, 0, 47) + '...' ELSE 
    dbo.JobTicket.callDescription END AS callDescription, dbo.JobTicket.ukey 
    AS helpDeskUkey, dbo.ClosedJobs_VW.closed, REPLACE(REPLACE(REPLACE(REPLACE
    (REPLACE(dbo.Building.building, '/', '/<br/>'), ' - ', '!@#$'), ' ', '<br/>'), 
    '!@#$', ' -<br/>'), '<br/>', '<br />') AS building 
FROM dbo.JobTicket LEFT OUTER JOIN dbo.Technician ON dbo.JobTicket.logRepID = 
    dbo.Technician.id LEFT OUTER JOIN 
    dbo.UserAll_VW ON dbo.JobTicket.userIDID = dbo.UserAll_VW.userID + '†' + 
    dbo.UserAll_VW.domain LEFT OUTER JOIN dbo.ClosedJobs_VW ON 
    dbo.ClosedJobs_VW.helpDeskID = dbo.JobTicket.ukey LEFT OUTER JOIN 
    dbo.Building ON dbo.JobTicket.buildingID = dbo.Building.ID 
WHERE (ISNULL(dbo.JobTicket.deleted, 'false') = 'false') AND 
    (dbo.JobTicket.districtID = @districtID) AND (dbo.JobTicket.departmentID = 
    @department) 

0 个答案:

没有答案