실행을 절대로 끝내지 않는 저장 프로 시저가 있습니다. 테이블이 인덱싱 되더라도 80,000 개의 레코드도 실패합니다. 나는 Adam Machanic 스크립트를 사용해 보았고 다음 문장이 끝나지 않는 것을 발견했다. 문제는 where 절 다음에있는 것 같습니다.이 쿼리를 단순화 할 수있는 방법이 있습니까?
P. 매개 변수 스니핑은 그렇지 않습니다.
insert into ProcessedFile_396 (Name,Phone,Title,Address,company,domain,SIC,NAICS,Industry,Email,UploadedB2bFiled_id) select
b.Name,
b.Phone,
b.Title,
case when isnull(b.Street,'') <> '' then isnull(b.Street,'') +',' else '' end +
case when isnull(b.city,'') <> '' then isnull(b.city,'') + ',' else '' end +
case when isnull(b.state,'') <> '' then isnull(b.state,'') + ',' else '' end +
case when isnull(b.zip,'') <> '' then isnull(b.zip,'') + '.' else '' end as Address,
(select top 1 Company from CompanyWebsite where domain = b.domain) as Company,
b.domain,
b.SIC,
b.NAICS,
b.Industry,
b.Email,
B2bFiled_id
from
UploadedFile_396 a, B2bDB b
where
((a.CompanyDomain = b.domain and ISNULL(a.CompanyDomain,'') <> ''))
and
((a.Name = b.Name or a.FirstName = b.FirstName or a.LastName = b.LastName or a.MiddleName = b.MiddleName)
and
(ISNULL(a.Name,'') <> '' or ISNULL(a.FirstName,'') <> '' or ISNULL(a.LastName,'') <> '' or ISNULL(a.MiddleName,'') <> ''))
group by
B2bFiled_id,b.Name,b.Phone,b.Title,b.Street,b.City,b.State,b.Zip,b.domain,b.domain,b.SIC,b.NAICS,b.Industry,b.Email
거의 확실합니다. 이 세상에서 당신은 무엇을하려고합니까? – podiluska
이름 조인은 아마도 수많은 레코드를 생성하고있을 것입니다. 빈 중간 이름은 일치하는 항목이 많고, 중간 이름도 하나이며, 이름과성에 대해서는 더 작은 범위에서 유효합니다. –
@podiluska는 4 세트의 필드를 비교합니다. –