一些微小提高sql性能的方法

set noccount on
忽略计数(隐藏1行受影响)

with(nolock)
忽略事务锁(跨域的时候应用nolock)

避免在WHERE子句中使用in,not in,or 或者having。
可以使用 exist 和not exist代替 in和not in。

不要以字符格式声明数字,要以数字格式声明字符值;避免全表扫描
SELECT emp.ename, emp.job FROM emp WHERE emp.empno = 7369;
不要使用:SELECT emp.ename, emp.job FROM emp WHERE emp.empno = ‘7369’

对Select语句的法则,做到业务需要那些字段写哪些字段,不要用*.也是避免全表扫描
使用SELECT empno,ename,category FROM emp WHERE empno = ‘7369‘
而不要使用SELECT * FROM emp WHERE empno = ‘7369‘

慎用LIKE ‘%parm1%‘,这样会造成全表扫描,应使用 LIKE ‘parm1%‘ 这样做就是索引扫描了

使用union实现or操作
select id,name,age from table where name=‘张三‘ union all select id,name,age from table where age>=18
不要使用select id,name,age from table where name=‘张三‘ or age>=18

7、避免使用count(*)获得表的记录数
(1)为了获得表中的记录数,我们通常使用下面的SQL语句:
SELECTCOUNT(*) FROM dbo.orders
这条语句会执行全表扫描才能获得行数。
(2)但下面的SQL语句不会执行全表扫描一样可以获得行数:
SELECT rows FROM sysindexes WHERE id =OBJECT_ID(‘dbo.Orders‘) AND indid <2

避免在存储过程,触发器,函数和批处理中重复调用函数,应该将结果存储在一个变量中,以后就可以直接使用了。

不要使用SP_xxx作为命名约定,它会导致额外的搜索,增加I/O(因为系统存储过程的名字就是以SP_开头的),同时这么做还会增加与系统存储过程名称冲突的几率

简单实用的文章
http://xsxjb.iteye.com/blog/1140036

时间: 2024-10-14 21:39:44

一些微小提高sql性能的方法的相关文章

提高PHP性能的方法

下面的文字从Dustin Whittle的 Scaling PHP in the real world 摘抄而来.原文作于2013年,有些信息可能不是那么新了. https://speakerdeck.com/dustinwhittle 性能的提高,对于高并发访问量的应用来说,至关重要.本文主要是对上文提到的各种方法进行进一步的解释. Opcode Cache后台用queue来处理工作 (doing work in the background with queues)部署用HTTP cachi

最新OCR文字识别软件提高OCR性能的方法

新一代ABBYY FineReader OCR文字识别软件在处理文件时,能够快速.准确的进行文件扫描和转换,并提供智能工具以增加工作效率,使企业和个人生产力在OCR性能上显着增强至新水平,包括新的黑白模式,提高了文件的处理速度.在精简的文件转换过程中,FineReader可以进一步提高其独特的能力,重建原生的多页文件格式,还支持最流行的格式轻松创建电子图书.此外,它扩展其业界领先的语言支持,使获奖的解决方案可用于新的全球市场. "ABBYY FineReader可以帮助人们在较短的时间内完成事半

性能测试(六)前端性能优化方法

日常工作和生活中,我们经常利用浏览器去打开一些URL来获取我们所需的资源,那么作为一个开发者或者性能测试工程师,如何去测试并提升优化前端的性能呢? 一.浏览器打开URL和方式和过程 不同浏览器工作方式不完全一样,大体来讲,浏览器的核心是浏览器引擎:不同浏览器对W3C的规范支持不尽相同,在具体功能的实现上也不完全一致. 1.连接到URL所在的服务器 用户在浏览器地址栏输入URL,打开URL时,浏览器首先寻找该URL所在的服务器.通过向DNS服务器查询,获取该URL所在网站的IP地址,然后浏览器向该

Android提高UI性能技巧

提高UI性能的方法事实上有非常多在实际的开发中都已经用到了,在此做一下总结. 1.降低主线程的堵塞时间 若一个操作的耗时较长(超过5秒),我们应该将其放入后台线程中运行.仅仅在须要改动UI界面时通知主线程进行改动. Android已经提供了AsyncTask以实现从主线程生成新的异步任务的方法. 2.提高Adapter&AdapterView的效率 (1)重用已生成过的Item View (2)加入ViewHolder , 避免反复查找须要改动的控件 public View getView(in

SQL性能优化:如何定位网络性能问题

一同事跟我反馈他遇到了一个SQL性能问题,他说全表只有69条记录,客户端执行耗费了两分多钟,这不科学呀.要我分析一下原因并解决.我按照类似表结构,构造了一个案例,测试截图如下所示 这个表有13800KB(也就是13M多大小),因为该表将图片保存到数据库(Item_Photo字段为iamge类型),这个是历史原因,暂且不喷这种的设计.看来这个SQL执行时间长的性能问题不在于IO和SQL本身执行计划是否有问题,而是在网络数据传时间上(服务器与客户端位于异地,两地专线带宽6M,不过很多应用.邮件.系统

聚焦-移除Bookmark Lookup、RID Lookup、Key Lookup提高SQL查询性能(六)

前言 前面几节都是讲的基础内容,本节我们讲讲索引性能优化,当对大数据进行处理时首先想到的就是索引,一旦遇到这样的问题则手忙脚乱,各种查资料,为何平常不扎实基本功呢,我们由浅入深,简短的内容,深入的理解,而非一上来就把问题给框死,立马给出解决方案,抛出问题,再到解决问题,你GET了没有. Bookmark Lookup.RID Lookup.Key Lookup定义 一说到这三者,如果对索引研究不深的童鞋估计是懵逼的,什么玩意,我们姑且将上面三者翻译为:标签查找.行ID查找.键查找.标签查找和键查

PHP提高网站性能的一些方法

前段时间面试问到了这个问题,回答的不是很全面,就去问了度娘,得到了一些比较全的答案,由于出处较多就没法确定原文出处了.下面是分享的答案. 一.大型网站性能提高策略: 大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器.高性能的数据库.高效率的编程语言.还有高性能的Web容器.这几个解决思路在一定程度上意味着更大的投入. web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如Jav

四项技术 助你提高SQL Server的性能

有时,为了让应用程序运行得更快,所做的全部工作就是在这里或那里做一些很小调整.但关键在于确定如何进行调整!迟早您会遇到这种情况:应用程序中的 SQL 查询不能按照您想要的方式进行响应.它要么不返回数据,要么耗费的时间长得出奇.如果它降低了企业应用程序的速度,用户必须等待很长时间.用户希望应用程序响应迅速,他们的报告能够在瞬间之内返回分析数据.就我自己而言,如果在Web上冲浪时某个页面要耗费十多秒才能加载,我也会很不耐烦. 为了解决这些问题,重要的是找到问题的根源.那么,从哪里开始呢?根本原因通常

Informix 11.5 SQL 语句性能监控方法及实现

我们知道,在数据库应用系统中,SQL 语句的性能好坏至关重要.如果 SQL 语句性能很差,可能会导致整个数据库应用系统的性能也非常差.那么,如何监控数据库系统中 SQL 语句的性能,导致 SQL 语句性能差的原因是什么? SQL 语句运行过程中对系统资源的使用情况如何?系统资源存在哪些瓶颈?在 Informix 11.5 中,主要提供了两个工具来解决上述问题.一个是 set explain 命令,我们可以通过查看数据库的查询计划来分析导致 SQL 语句性能差的原因并给予相应的调整,另一个是 SQ