不知道不要紧,知道了会很牛逼

时间:2021-09-26 14:44:41
今天老板在我电脑上,打开SQL Server查询器,输入 select fID from tabKit , 查询结果是77000行,用时显示的1秒钟。他让我必须优化在1秒钟之内。

于是,我找遍各大网络:
1. 该语句查询,在我工作的电脑上是1.6秒钟
2.在我家里的机器上不到1秒,具体多少毫秒,我不知道
3.我真的想知道,这条语句还能怎么优化?(索引已经加了,fID为主键,但是是varchar(100)类型的)

求各路大神搭救:就想知道, select fID from tabKit  这条语句该怎么优化? 先谢谢谢谢,跪求答案,请各路英雄广开言路,帮忙打听下也行啊

10 个解决方案

#1


换服务器呗,多加些硬件,千万别心疼钱

#2


估计在很难优化了,除过在硬件上投入。。

#3


把你的语句的执行计划贴出来看看。

要想优化,首先得知道这个语句慢在哪儿?

#4


你就贴了这么一个简单的语句,没有任何具体的信息,包括表结构等信息,没办法帮你优化。

#5


你的索引做得太大。我基本上不建议在varchar(100)类型的列上建索引。
以你的例子,可以使用“加温”的方法实现。首先要保证给SQL Server分配足够的内存,然后你运行一次select fID from tabKit (俗称“加温”,即把磁盘中的页面都读取到内存缓冲),然后你再找你老板过来再运行一次select fID from tabKit 就发现速度快了很多。

#6


晕 77000行,普通的程序界面肯定显示不下,web页面更是显示不下,你做个分页不就是了。 不知道不要紧,知道了会很牛逼

#7


select fID from tabKit ---没有where条件,并且fiD是主键,你还想要再快一些。。。
1,如果fid仅仅是主键,而不是聚集索引的主键,那就改成聚集索引的主键;
2,fiD从varchar(100)变为int类型,这个估计不行吧?那么就把varchar(100)变的更短一些吧,比如varchar(50);
3,换更加NB的服务器;
4,按照你的描述,应该是链接到服务器上执行的那句话吧,1秒应该还含有网络传输时间,因为SQL Server的网络传输用的是TCP/IP协议,所以呢,网络要整下。
5,想看SQL Server在执行的时候实际话了多少时间,可以set statistics time on/off 这样看;
但是呢,综上所述,我想说的是:你仅仅是想把那条语句从1秒变到更短,个人觉得,没意义。。。

#8


具体问题具体分析了,单单这句很难找到慢在哪了
打开查询分析,按Ctrl+ L将执行计划贴出来看看

#9


大哥们,人家都说了就一句话:select fID from tabKit ; 而且fiD是主键,执行计划有什么好看的,肯定是clustered scan啊。。。
单个的这句话,个人觉得没什么优化的意义。

#10


你就自己说就不查你把那些数据下下来
你要网速达不到好几百K
1秒种下载都不够
瓶颈在网络了

#1


换服务器呗,多加些硬件,千万别心疼钱

#2


估计在很难优化了,除过在硬件上投入。。

#3


把你的语句的执行计划贴出来看看。

要想优化,首先得知道这个语句慢在哪儿?

#4


你就贴了这么一个简单的语句,没有任何具体的信息,包括表结构等信息,没办法帮你优化。

#5


你的索引做得太大。我基本上不建议在varchar(100)类型的列上建索引。
以你的例子,可以使用“加温”的方法实现。首先要保证给SQL Server分配足够的内存,然后你运行一次select fID from tabKit (俗称“加温”,即把磁盘中的页面都读取到内存缓冲),然后你再找你老板过来再运行一次select fID from tabKit 就发现速度快了很多。

#6


晕 77000行,普通的程序界面肯定显示不下,web页面更是显示不下,你做个分页不就是了。 不知道不要紧,知道了会很牛逼

#7


select fID from tabKit ---没有where条件,并且fiD是主键,你还想要再快一些。。。
1,如果fid仅仅是主键,而不是聚集索引的主键,那就改成聚集索引的主键;
2,fiD从varchar(100)变为int类型,这个估计不行吧?那么就把varchar(100)变的更短一些吧,比如varchar(50);
3,换更加NB的服务器;
4,按照你的描述,应该是链接到服务器上执行的那句话吧,1秒应该还含有网络传输时间,因为SQL Server的网络传输用的是TCP/IP协议,所以呢,网络要整下。
5,想看SQL Server在执行的时候实际话了多少时间,可以set statistics time on/off 这样看;
但是呢,综上所述,我想说的是:你仅仅是想把那条语句从1秒变到更短,个人觉得,没意义。。。

#8


具体问题具体分析了,单单这句很难找到慢在哪了
打开查询分析,按Ctrl+ L将执行计划贴出来看看

#9


大哥们,人家都说了就一句话:select fID from tabKit ; 而且fiD是主键,执行计划有什么好看的,肯定是clustered scan啊。。。
单个的这句话,个人觉得没什么优化的意义。

#10


你就自己说就不查你把那些数据下下来
你要网速达不到好几百K
1秒种下载都不够
瓶颈在网络了