进行SQL优化的第一步,要明确什么是SQL优化,老祖宗说,知己知彼,才能百战不殆。在分享我的优化经验前,先说说什么是SQL优化。
SQL优化,顾名思义,就是对SQL语句进行优化,让语句的运行更高、更快、更强。这样看来,SQL优化就是个纯技术活了,通过各种各样的函数、方法、各种不同的语句组合达到SQL优化的效果。
SQL优化真是这样吗?是也不是。说是,因为不管采用何种方式优化,最终的实现始终要通过技术手段来落地,说不是,是因为在我看来,优化不仅仅需要技术能力,更需要对业务逻辑的明确,需要你对用户需求的深刻理解,也许还需要在相应的数学公式上的掌握,甚至是需要你可以在用户需求与性能方面进行平衡的能力。
说到这些,也许有同道要认为我把简单问题复杂化了,我这先不说太多,在后续的文章中,大家会逐步看到我这种想法的形成过程。在这,举个简单的例子说明对数学公式的掌握对优化的帮助。
要求:计算1-10000这10000个数的总和。
解决方案1:
declare @i int
declare @sum int
set @i = 0
set @sum = 0
while @i<=10000
begin
set @sum = @[email protected]
set @i = @i + 1
end
select @sum
解决方案2:
declare @sum int
set @sum = 0
set @sum = (1+10000)*10000/2
select @sum
方案1耗时93MS,方案2耗时0MS,明显的,方案2的性能要远远优于方案1的性能,这就是我说的数学公式在优化中的应用。