我試圖做一個單一的查詢我需要的報告,我不知道如何通過速度問題。更快加入子查詢
預期結果
我需要每個病人一個列上,在同一列其所有的診斷代碼。我的代碼做的工作,幹得不錯,但它增加了我的運行必須根據不同的標準進行30次,將5分鐘的過程大約30
試圖解決
我使用以下代碼左外連接到。
left outer join (Select distinct add2.VisitID,
substring((Select ', '+add1.Diagnosis AS [text()]
From AbsDrgDiagnoses add1 Where add1.VisitID = add2.VisitID
ORDER BY add1.VisitID,DiagnosisSeqID For XML PATH ('')), 2, 1000) DiagText
From [Livendb].[dbo].[AbsDrgDiagnoses] add2) add3 on diag.VisitID = add3.VisitID
成果
這工作,但我在9月數據的第二次查詢只用濾波器30 1的一個碼提高至1M 12S。如果我自己運行查詢,它需要3分49秒來編譯,所以它在我的主表中有所改進,但如果可能的話,我想盡量減少它。
嘗試其他決議
我試圖創建查詢視圖,並通過這一點,但收到了同樣的運行時間。
我也附加了SourceID,它始終是相同的值,但我的8個表在他們的索引中使用它,但實際上它稍微增加了我的時間。
結論
,我需要合併表中包含大約30萬行是最有可能的問題,周圍有增加的時間沒辦法,但我希望有人可以有一個技巧,可以幫助我減少這個時間。