Sql server 2008 r2 SQL查询细化

Sql server 2008 r2 SQL查询细化,sql-server-2008-r2,Sql Server 2008 R2,我有一个查询,通常需要大约15分钟来运行,我试图看看我是否遗漏了一些东西来改进它并让它运行得更快。任何帮助都将不胜感激 enterprise和AD这两个表都有大约2000条独特的记录。在2k8r2服务器、8gb ram、2个vcpu和sql 2k8r2上运行此功能 select distinct dnsname, description, os, role, lastlogontimestamp from [dbo].[ActiveDirector

我有一个查询,通常需要大约15分钟来运行,我试图看看我是否遗漏了一些东西来改进它并让它运行得更快。任何帮助都将不胜感激

enterprise和AD这两个表都有大约2000条独特的记录。在2k8r2服务器、8gb ram、2个vcpu和sql 2k8r2上运行此功能

select
    distinct dnsname,
    description,
    os,
    role,
    lastlogontimestamp
from
    [dbo].[ActiveDirectory]
    where AD_PULL_DATE = '4/2/2013'
    and role in ('DELEGATE',
                'NO_PWDREQD',
                'ENABLED',
                'NO_PWDEXP')
    and dnsname not in (select distinct dnsname from Enterprise)

如果你们两个都不一样会怎么样?IN子句不需要它,它可以跨行工作,而不仅仅是dnsname。请问您有什么索引?两个表都有大约2000个唯一的dnsname,但每个dnsname有大量的记录。目前没有一个表被索引,我猜这是我应该首先做的?为dnsname列编制索引?这会有所帮助,但您也需要其他索引。根本没有索引?真的?