我有一个应用程序可以为报告生成数据,如下所示:
age < 30 | age >=30 | asian | hispanic
-----------------------------------------------------------------
clients in prog A | | |
-----------------------------------------------------------------
clients in prog B | | |
-----------------------------------------------------------------
number clients | | |
-----------------------------------------------------------------
number children | | |
查询有时非常长,我想优化它们。
我在服务器上没有运行查询分析器的权限(我读到最好不要使用它的建议)。最长的存储过程需要大约 35 秒才能执行。
仔细阅读,高查询优化要避免的事情是:
- 选择 *
- 存在
- 清楚的
- 游标
- 有
我对手头的任务有几个问题:
- 通过将 Select * 更改为 Select colA, colB ... ,我看到了多少差异?真的值得麻烦吗?
- 如果存在(...),我该如何优化?if(Select Count(query) > 0) 是一个很好的优化吗?
- 如果我真的要返回表中的所有列,可以使用 Select * 吗?
我不想发布这些查询,因为它们又长又可怕,但是您还能提供哪些其他建议?我正在尝试尽可能使用可重复使用的函数和临时表来减轻我的大脑和服务器上的压力。