Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL查询CPU使用率服务器99%Microsoft Azure_Sql Server_Azure - Fatal编程技术网

Sql server SQL查询CPU使用率服务器99%Microsoft Azure

Sql server SQL查询CPU使用率服务器99%Microsoft Azure,sql-server,azure,Sql Server,Azure,我有一个位于Azure上的数据库。我用动态数据编写了自动电子邮件流程。对于动态数据,我使用sql查询将数据从db传送到服务器。但我所有的查询,即使是很小的查询,也占用了99%的cpu使用率。我正在使用带有异步库的NodeJS服务器。以下是我的MSSQL查询示例: SELECT DISTINCT TOP 1 st.id, st.firstName, st.lastName, st.email, st.lastLogin, st.phone,

我有一个位于Azure上的数据库。我用动态数据编写了自动电子邮件流程。对于动态数据,我使用sql查询将数据从db传送到服务器。但我所有的查询,即使是很小的查询,也占用了99%的cpu使用率。我正在使用带有异步库的NodeJS服务器。以下是我的MSSQL查询示例:

    SELECT DISTINCT TOP 1
    st.id,
    st.firstName,
    st.lastName,
    st.email,
    st.lastLogin,
    st.phone,
    st.gender,
    sa.title,
    bra.Title AS brand,
    ss.SaleDate,
    teh.sDate,
    sa.imageUrl,
    sa.guid,
    sa.id saleId
FROM dbo.Students st
INNER JOIN KEY_SalesToStudents ss
    ON (st.ID = ss.studentID)
INNER JOIN Sales sa
    ON (sa.ID = ss.SaleID)
INNER JOIN Brands bra
    ON (sa.BrandID = bra.ID)
LEFT JOIN dbo.tblEmailHistory teh
    ON st.id = teh.studentID
WHERE st.id NOT IN (SELECT
    ueb.studentID
FROM dbo.tblEmailBan ueb
WHERE ueb.targetID = 3
OR ueb.targetID = 24)
AND CONVERT(date, DATEADD(DAY, 1, ss.SaleDate)) = CONVERT(date, GETDATE())
AND st.deleted = 0
AND ISNULL(teh.sDate, '') = ''
OR CONVERT(date, DATEADD(DAY, 14, teh.sDate)) = CONVERT(date, GETDATE())
AND ISNULL(teh.sDate, '') = ''
OR CONVERT(date, teh.sDate) >= CONVERT(datetime, GETDATE())
ORDER BY ss.SaleDate DESC

请在最后4个
和/或
条件(即
和ISNULL(teh.sDate,“)=”或CONVERT(…
)周围使用括号,以确保根据您的业务逻辑给出正确的优先级。我怀疑您希望将其编写为
和(ISNULL(teh.sDate,“)=”或CONVERT(date,DATEADD(DAY,14,teh.sDate))=CONVERT(date,GETDATE())))和(ISNULL(teh.sDate,”)=''或CONVERT(date,teh.sDate)>=CONVERT(datetime,GETDATE())
当您在SQL Management Studio中运行该查询并在结果中勾选“实际执行计划”选项时,它是否为您提供了任何索引建议?对于大型数据集,您需要为这些日期列编制索引,以获得良好的性能。