[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