数据库查询语句优化方法
Select 语句是数据库应用系统中最常用的语句之一,Select 语句设计的好坏直接影响到应用程序的工作性能。在设计Select语句时,应该注意以下几种影响查询效率的情况:
1、 没有创建索引,或者没有正确地使用索引。这是最有可能影响数据库查询的原因之一。创建索引是优化数据库查询效率的重要手段。
2、 存在死锁的情况,从而导致Select语句挂起,无法返回结果集。
3、 返回不必要的列,很多程序员喜欢使用Select * from TableName 来查询表可视图中的数据,* 代表表或视图中所有字段,建议用户在使用Select语句时,只返回必要的列。浪费更多的系统资源,从而影响查询效率。
4、 在Select语句中使用Where字句,设置查询条件,只返回必要的记录。
5、 在Select语句中使用Top 关键字,限制返回的记录数量。
6、 如果在Where字句中使用Like谓词进行模糊查询,则要注意通配符的使用方法。
7、 慎用Union关键字,因为它会影响查询的效率。
8、 慎用Distinct关键字,因为在结果集中返回重复的记录并不会影响查询的效率。相反,过滤掉重复的记录会浪费查询的时间和系统资源。因此,除非必须如此,不要使用Distinct关键字。
9、 如果需要经常对表中的数据进行统计,可以在表中增加一个统计字段,每次表中数据发生变化时,动态更新统计字段。这样,在查询统计结果时,就不需要临时对表中的'数据统计计算了。
10、如果需要多次对一个数据量非常大的表中的一部分数据进行查询操作,可以将这部分数据保存到临时表中,然后对临时表进行查询操作。如果需要,可以在临时表上创建索引。
11、 在Where字句中,有时使用Between关键字比使用In关键字要快,因为In关键字对其后面的集合中的每个元素进行比较操作。如果必须使用In关键字,则可将频繁使用的值放在集合的前面,从而减少比较的次数。
12、尽量少使用视图,特别是嵌套视图,可以直接从表中获取数据。在开发应用程序时,有时程序员为了方便,设计一个包含很多字段的大视图,无论需要什么数据,都可以通过查询此视图获取到。实际上,最好从表直接获取数据,以避免查询大视图而造成的系统开销。建议使用存储过程代替视图,从而提高执行的效率。
13、如果不需对结果集进行排序,则不要使用Order By字句,因为排序操作会占用系统资源。
14、不要在Where字句中“=”的左侧使用函数和表达式,因为系统将无法应用函数或表达式中的索引。
15、当判断表中包含记录时,使用Exists关键字,而不要使用Count统计表中所有的记录数量。
你的数据库应用系统违反几条建议?欢迎提出更多优化建议!
-
电工系统基础知识
电工系统基础知识是什么?相信很多人都想知道吧?以下是小编为您整理的电工系统基础知识相关资料,欢迎阅读!电工系统基础知识1、左零右火。2、三相五线制用颜色黄、绿、红、淡蓝色分别表示U、V、W、N保护接地线双颜色(PE)。3、变压器在运行中,变压器各相电流不应超过...
-
怎么保证Oracle数据库的安全
在操作系统下建立用户组是保证数据库安全性的一种有效方法。Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只DBA可执行。在Unix环境下组设置的配置文件是/etc/group,关于这个文件如何配置,请参阅Unix的有关手册。保证安全性的几种方法:(1)在安...
-
计算机三级数据库知识:数据库在连接中常见错误解决方法
一、SQLServer不存在或访问被拒绝分析:此问题最为复杂,由于错误发生的原因比较多,所以需要检查很多方面。一般情况下,有几种可能性:Server名称或IP地址拼写有误。2.服务器端网络配置有误。3.客户端网络配置有误。要解决此问题,我们一般要遵循以下的步骤来一步步找出...
-
有关天气系统的谚语
久晴大雾阴,久阴大雾晴;久雨见星光,明朝雨更狂。以下是小编为大家整理好的有关天气系统的谚语,一起看看吧!1、久雨雾晴,久晴雾雨。2、久雨闻鸟声,不久天转晴。3、鱼虾乱跳,大雨就到4、蝉搬家,水(雨水)浇瓜5、鸡在高处鸣,雨止天要晴。6、燕子低飞天将雨7、蜜蜂不进窝,明日有...