0
我已經寫了小的數據庫這個代碼,但知道數據庫的大小增加了代碼,它顯示在優化它 下面超時error.plz幫助代碼: -優化
IF OBJECT_ID('Temp_expo') is not null
begin
drop table Temp_expo
end
set @query3 = 'SELECT SPCT_ID_REL_LOW,SPCT_ID_REL_HIGH,ROW_NUMBER() over (order by PDBC_PFX) as TempId
INTO Temp_expo
FROM ['+ @FCTServer +'].['[email protected]+'].dbo.CMC_SPCT_SUPP_CONV
where SPCT_ID_REL_LOW <> '''' and SPCT_ID_REL_HIGH <> '''''
exec (@query3)
Select @minCount= min(TempId) from Temp_expo
Select @maxCount= max(TempId) from Temp_expo
create table #ICD9SPCT
(
ICD9Code varchar(200)
}
while @minCount<[email protected]
begin
select @low=SPCT_ID_REL_LOW,@high=SPCT_ID_REL_HIGH
from Temp_expo
where [email protected]
group by SPCT_ID_REL_LOW,SPCT_ID_REL_HIGH
set @loworder = (select ISNULL(OrderId,0) from FCT_ICD9_Diag_ORDER where [email protected])
set @highorder = (select ISNULL(OrderId,0) from FCT_ICD9_Diag_ORDER where [email protected])
insert into #ICD9SPCT
select ICD9 from FCT_ICD9_Diag_ORDER ordert
left join #ICD9SPCT icdorder on ordert.ICD9 = icdorder.ICD9Code
where OrderId between @loworder and @highorder and icdorder.ICD9Code is null
set @minCount = @minCount+1;
end
由於沒有「我們」可以使用的代碼,因此很難幫助您。如果你可以使用像http://sqlfiddle.com/這樣的東西作爲一個工作示例,它會有很大的幫助 - 作爲一個快速拍攝,我會檢查你是否有適當索引的引用字段。 – 2013-03-28 09:40:26
我必須從表中選擇SPCT_ID_REL_LOW,SPCT_ID_REL_HIGH值並將它們保存在臨時表中並使用它。這個LOW,HIGH是範圍值,大約LAKHS的數量。有沒有什麼辦法,我可以直接使用它的單個select語句而不使用臨時表 – umm 2013-03-28 10:30:02