我有一些经常运行的复杂查询。 缓存结果是不可能的,因为它们在大多数时间都会更新,并且看到更新的数据就是重点。
我不允许更改数据库设置,除非他们首先冻结,否则他们不会这样做,所以我必须尽我所能来优化查询和表格。
由于我认为我已经尽力完成这些查询以及他们使用的表格,我想如果我要为它们创建存储过程,速度是否会有任何提升。
是否可以提高速度,还是应该寻找别的东西?
答案 0 :(得分:2)
不,使用存储过程不会提高“硬”查询的性能。
大多数硬查询都是由数据库需要做大量工作才能找到答案引起的。如果它存储在存储过程中,则不会有任何不同。
更改数据库设置可能会影响某些事情,但通常优化查询的最佳方法是更改数据结构,这样您就可以查询更少行或更少列。或者,您可以使用更好的索引或其他改进查询的方法。
使用EXPLAIN。使用非生产系统进行性能测试。不要费心将查询放入程序中(如果性能是您想要这样做的唯一原因)。
答案 1 :(得分:0)
是。使用存储过程将提高性能。由于SP被编译并存储在数据库服务器中。
但是它还取决于表的结构和查询!
如果您的数据库结构不佳且查询非优化,则数据增长时性能会很低。
答案 2 :(得分:0)