分类

链接

2024 年 11 月
 123
45678910
11121314151617
18192021222324
252627282930  

近期文章

热门标签

新人福利,免费薅羊毛

SQL优化经验总结8

因为内部发生的类型转换, 这个索引将不会被用到! 为了避免ORACLE对你的SQL进行隐式的类型转换, 最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型 (31) 需要当心的WHERE子句:   某些SELECT 语句中的WHERE子句不使用索引. 这里有一些例子.   在下面的例子里, (1)‘!=' 将不使用索引. 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中. (2) ‘||'是字符连接函数. 就象其他函数那样, 停用了索引. (3) ‘+'是数学函数. 就象其他数学函数那样, 停用...

SQL Server 暂无评论 阅读(1,881)

SQL优化经验总结7

ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空.   WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.   例如:   表DEPT包含以下列:     DEPT_CODE PK NOT NULL DEPT_DESC NOT NULL DEPT_TYPE NULL   低效: (索引不被使用)     SELECT DEPT_CODE FROM DEPT ORDER BY DEPT_TYPE   高效: (使用索引)     SELECT DEPT_CODE FROM DEPT WHERE DEPT_TYPE > 0   (...

SQL Server 暂无评论 阅读(1,844)

SQL优化经验总结6

低效: (索引失效)   SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;   高效: (索引有效)     SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;   (27) 总是使用索引的第一个列:   如果索引是建立在多个列上, 只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引. 这也是一条简单而重要的规则,当仅引用索引的第二个列时,优化器使用了全表扫描而忽略了索引   28) 用UNION-ALL 替换UNION ( 如果有可能的话):   当SQ...

SQL Server 暂无评论 阅读(1,907)

SQL优化经验总结3

例子: (高效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB')   (低效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB')   (16) 识别'低效执行'的SQL语句:   虽然目前各种关于SQL优化的图形化工具层出不穷,但是写出自己的SQL工具来解决问题始终是一个最好的方法:     SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER...

SQL Server 暂无评论 阅读(1,779)

SQL优化经验总结2

(10) 尽量多使用COMMIT: 只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:   COMMIT所释放的资源:   a. 回滚段上用于恢复数据的信息.   b. 被程序语句获得的锁   c. redo log buffer 中的空间   d. ORACLE为管理上述3种资源中的内部花费   (11) 用Where子句替换HAVING子句:   避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目...

SQL Server 暂无评论 阅读(1,880)

SQL优化 经验总结1

我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: OR...

MySQL, Oracle, SQL Server 暂无评论 阅读(2,009)

2000W条数据的Oralce数据库SQL查询优化经验

无论你写了什么、做了什么、别人都觉得你没啥的、写得不好、不深入,给你泼N多冷水,但是往往这些泼冷水的家伙往往大多是狗屁不是的家伙,甚至大多是马甲而已,有本事大家都多写写文章,用文章、用实力来证明写得更好就足可以让大家心服口服了。   我为了鼓励其他同行写文章,几乎觉得写得不错的文章,都给推荐+1,这是无形的支持与鼓励,举手之劳而已,但是能给人很多鼓舞了,先讲购买他的软件产品,至少点一下推荐+1,又不花费力气,也不用花钱,的确从他的文章里学到了知识、自己也提高了,那就顺手点一下...

.NET, DBA, SQL Server 暂无评论 阅读(2,285)

SqlSever2005千万条记录分页优化经验总结

作者简介: 吉日嘎拉(蒙古语为吉祥如意),2000年毕业于黑龙江大学计算机系软件专业,目前定居杭州,典型的IT软件土鳖一个,外号“软件包工头”。 精心维护通用权限管理系统组件有8年多,3年的不断推广,20万行经典的业务逻辑积累,经过上万次的调试修正,经历了四百个付费客户,上百软件公司的实战开发。 11年以上开发经验,外企工作5年,上市公司3年,独立经营软件公司2年,主持研发部门管理工作4年以上。 将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。 —————————————————————————————————...

SQL Server 暂无评论 阅读(3,002)

MySQL性能优化之查询篇

今天,数据库的操作越来越重要,关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。这个MySQL性能优化经验是作者自己进行总结的结果,配合一些代码进行解释。希望本文能给各位数据库管理员在性能优化方面一些启示。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 1.查询的模糊匹配 尽量避免在一个复杂...

MySQL 暂无评论 阅读(2,244)