[最走心的句子经典语句]1、人的精力都有限,真就可能只能把心思给那么几个人。相遇容易相识也不难,难的是维持。刚开始可能都相见恨晚,到后来可能只是偶尔联系。这世上所有的久处不厌,都是因为用心。 2...+阅读
1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。 调整不良SQL通常可以从以下几点切入: ? 检查不良的SQL,考虑其写法是否还有可优化内容 ? 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写 ? 检查优化索引的使用 ? 考虑数据库的优化器 2. 避免出现SELECT * FROM table 语句,要明确查出的字段。
3. 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。 4. 查询时尽可能使用索引覆盖。即对SELECT的字段建立复合索引,这样查询时只进行索引扫描,不读取数据块。 5. 在判断有无符合条件的记录时建议不要用SELECT COUNT (*)和select top 1 语句。 6. 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量。
7. 应绝对避免在order by子句中使用表达式。 8. 如果需要从关联表读数据,关联的表一般不要超过7个。 9. 小心使用 IN 和 OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。 10. 用 代替,>用>=代替,11. 在查询时尽量减少对多余数据的读取包括多余的列与多余的行。 12. 对于复合索引要注意,例如在建立复合索引时列的顺序是F1,F2,F3,则在where或order by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,且必须包含第一列。
只能是F1或F1,F2或F1,F2,F3。否则不会用到该索引。 13. 多表关联查询时,写法必须遵循以下原则,这样做有利于建立索引,提高查询效率。格式如下select sum(table1.je) from table1 table1, table2 table2, table3 table3 where (table1的等值条件(=)) and (table1的非等值条件) and (table2与table1的关联条件) and (table2的等值条件) and (table2的非等值条件) and (table3与table2的关联条件) and (table3的等值条件) and (table3的非等值条件)。
注:关于多表查询时from 后面表的出现顺序对效率的影响还有待研究。 14. 子查询问题。对于能用连接方式或者视图方式实现的功能,不要用子查询。例如:select name from customer where customer_id in ( select customer_id from order where money>1000)。应该用如下语句代替:select name from customer inner join order on customer.customer_id=order.customer_id where order.money>100。 15. 在WHERE 子句中,避免对列的四则运算,特别是where 条件的左边,严禁使用运算与函数对列进行处理。
比如有些地方 substring 可以用like代替。 16. 如果在语句中有not in(in)操作,应考虑用not exists(exists)来重写,最好的办法是使用外连接实现。 17. 对一个业务过程的处理,应该使事物的开始与结束之间的时间间隔越短越好,原则上做到数据库的读操作在前面完成,数据库写操作在后面完成,避免交叉。 18. 请小心不要对过多的列使用列函数和order by,group by等,谨慎使用disti软件开发t。
19. 用union all 代替 union,数据库执行union操作,首先先分别执行union两端的查询,将其放在临时表中,然后在对其进行排序,过滤重复的记录。 当已知的业务逻辑决定query A和query B中不会有重复记录时,应该用union all代替union,以提高查询效率。数据更新的效率 1. 在一个事物中,对同一个表的多个insert语句应该集中在一起执行。 2. 在一个业务过程中,尽量的使insert,update,delete语句在业务结束前执行,以减少死锁的可能性。
数据库物理规划的效率 为了避免I/O的冲突,我们在设计数据库物理规划时应该遵循几条基本的原则(以ORACLE举例): table和index分离:table和index应该分别放在不同的tablespace中。 Rollback Segment的分离:Rollback Segment应该放在独立的Tablespace中。 System Tablespace的分离:System Tablespace中不允许放置任何用户的object。(mssql中primary filegroup中不允许放置任何用户的object) Temp Tablesace的分离:建立单独的Temp Tablespace,并为每个user指定default Temp Tablespace 避免碎片:但segment中出现大量的碎片时,会导致读数据时需要访问的block数量的增加。
对经常发生DML操作的segemeng来说,碎片是不能完全避免的。所以,我们应该将经常做DML操作的表和很少发生变化的表分离在不同的Tablespace中。 当我们遵循了以上原则后,仍然发现有I/O冲突存在,我们可以用数据分离的方法来解决。 连接Table的分离:在实际应用中经常做连接查询的Table,可以将其分离在不同的Taclespace中,以减少I/O冲突。
使用分区:对数据量很大的Table和Index使用分区,放在不同的Tablespace中。 在实际的物理存储中,建议使用RAID。日志文件应放在单独的磁盘中。
延伸阅读:
古代励志经典语句1、不飞则已,一飞冲天;不鸣则已,一鸣惊人。——《韩非子》任何成功,都是厚积薄发,多年苦修换来的,不怕走得慢,只怕不开始。 2、去留无意,闲看庭前花开花落;宠辱不惊,漫随天外云卷云舒...
高中生励志语句日出东方的店 关注 高中生励志经典语录 1)人有了信念和追求就能忍受一切艰苦,适应一切环境。 2)成大事不在于力量多少,而在能坚持多久。 3)做事有始有终值得开始的事就值得完成。...
下雨了伤感的语句等待雨,是伞的一生宿命 等待你,是我一生的追求 1、下雨了 不知你在为谁撑伞 怀里留着谁的温度。 2、今天又下雨了,你在我身边我很开心也很幸福。 3、每当下雨的时候,我还是会想...
有什么经典的爱情语句恋爱语录 一 人的需要也不多,一杯清水,一条面包,一句我爱你! 不过,如果还可以选择多一点的话,我希望水是你斟的,面包是你给的, "我爱你" 是你亲口说的。 恋爱语录 二 心动---是第一眼...
简短唯美的英语句子Never frown, even when you are sad, because you never know who is falling in love with your smile. 纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。 Don't cr...
有没有一些优美的英语句子1 我的世界不允许你的消失,不管结局是否完美。 No matter the ending is perfect or not, you cannot disappear from my world3 承诺常常很像蝴蝶,美丽的飞盘旋然后不见 Prom...
有没有比较优美的英语句子夏天的飞鸟,飞到我的窗前唱歌,又飞去了。秋天的黄叶,它们没有什么可唱,只叹息 一声,飞落在那里。 Stray birds of summer come to my window to sing and fly away。 And yellow...
急求简单优美的英语句子1 夏天的飞鸟,飞到我的窗前唱歌,又飞去了。 秋天的黄叶,它们没有什么可唱,只叹息一声,飞落在那里。 stray birds of summer come to my window to sing and fly away. and yellow...
有关海字的成语词语句子挨山塞海 百川归海 碧海青 拔山超海 八仙海,各显神通 醋海翻波 沧海横流 沧海桑田 沧海粟 沧海遗珠 曾经沧海 持蠡测海 春深似海 倒海翻江 海捞针 东海捞针 东海扬尘 刀山火...