[SQL ] Excel連線SQL Server效率問題

作者: dumbiekbbx (睏睏睏~~)   2017-03-24 10:16:42
資料庫名稱:SQL Server
資料庫版本:2008 R2
內容/問題描述:
先前情提要一下,近期因同事業務需求,接手了一份與SQL Server連線的Excel檔
但我從來沒碰過SQL...(抖
因為每次開啟都需要花上2分半鐘以上的時間,咱老闆覺得效率太差,影響工作
而且開啟時,會不時與Server連動,造成程式停擺,影響日常業務
同事希望能改善此問題
開啟檔案時,"似乎"都在建構一個約10萬筆資料的表格(含有50幾個欄位)
說似乎是因為我對Excel連線SQL Server的方式不是很熟悉,不太確定是否這樣運作
建構完成後,使用者可以下SQL指令,接著便會從10幾個資料表中去找需要的資料
(如:上半季的資料),然後組該表格
這10幾個資料表有大有小,小的幾10筆資料大則60幾萬筆。
總而言之就是從每個Sheet去撈我要的東西,然後組成一個表格這樣
看了SQL寫法後,發現架構滿單純的:從10幾個資料表中去SELECT需要的欄位且改名
如此重複50幾次(有WHERE、CASE判斷)
之後就把資料表一個個INNER JOIN
想請問各位大大:
1. 是否因為資料量大,造成執行速度很慢?
2. 是否SQL寫法還有待調整?因為對SQL只認識了三天
不確定是否因為一連串的JOIN導致執行速度超慢
3. 還未確定是否已經設定INDEX。若有設定,還能從哪邊下手來改善?
感謝各位大大耐心看完問題,新手上路請多包涵!
作者: mike4994 (愛吃的中年胖子)   2017-03-24 11:35:00
我是先寫好STORR PROCDURE 來讓EXCEL抓 ,希望對你有幫助
作者: terrybob (罪雲樵)   2017-03-24 16:56:00
我的話,工作表、資料表1對1,然後產index去設定欄位60萬筆很少啦…每個資料表要有互相對應的欄位,去對應這樣未來維護、跟提昇速度…等,才會比較好。先建資料表吧…建完再看結構、欄位、sql是否要調整?沒有所謂多久內執行完算正常的,比之前更快才是目的
作者: longlongint (華哥爾)   2017-03-28 23:06:00
一定要用excel?沒有更好的建議 會想知道excel裡面sql指令&資料表的意義然後 自己從命令列下指令或是 如果資料沒有即時性 可以copy一份計算結果出來然後對大量資料做join的時候要小心一點吧......但是你才碰三天 然後我不清楚你現場的狀況XD

Links booklink

Contact Us: admin [ a t ] ucptt.com