您好,登錄后才能下訂單哦!
經現場同事反映,他們用的好好的XML 導出工具最近一直報錯,經常報數據庫連接超時,查看數據庫發現已經有100G 以上有空間了。
但導出數據的存儲過程里面每次按時間只導1000多條數據,近理說有時間過濾應該不會產生問題。
將存儲過程拉到SQL SERVER 中執行,發現需要5分鐘,
--創建臨時表用來存放數據create table #temp( id varchar(10), name varchar(20), zg_id varchar(10), ks_id varchar(10) )--按時間段插入數據insert into #temp(id,name)select id,name from tb1(nolock)where beginTime between '20150606' and '20150706'--按已有的數據關聯其它表,補全其它數據update #tempset zg_id=b.idfrom #temp a,tb_zg b(nolock)where a.zg_id=b.idupdate #tempset ks_id=b.idfrom #temp a,tb_ks b(nolock)where a.ks_id=b.id
而查詢出來的數據只有幾千條。
仔細分析得知,剛開始存儲過程將三張表的數據插入到一個臨時表然后再做處理。
經過查詢發現三張表每張表的數據都超過700萬行,每張表的關聯字段都是主鍵,且第一張表已經用時間段來過慮,也就是說只查詢第一張表,且按時間段來過慮的話不到一秒。
因些我把第一張表的數據插入到臨時表。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。