问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ORACLE 常用操作语句规范和注意事项

发布网友 发布时间:2022-04-23 11:54

我来回答

2个回答

热心网友 时间:2022-04-07 16:47

规范:
i. 尽量避免大事务操作,慎用holdlock子句,提高系统并发能力。

ii. 尽量避免反复访问同一张或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据到临时表中,然后再做连接。

iii. 尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作。

iv. 注意where字句写法,必须考虑语句顺序,应该根据索引顺序、范围大小来确定条件子句的前后顺序,尽可能的让字段顺序与索引顺序相一致,范围从大到小。

v. 不要在where子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

vi. 尽量使用exists代替select count(1)来判断是否存在记录,count函数只有在统计表中所有行数时使用,而且count(1)比count(*)更有效率。

vii. 尽量使用“>=”,不要使用“>”。

viii. 注意一些or子句和union子句之间的替换

ix. 注意表之间连接的数据类型,避免不同类型数据之间的连接。

x. 注意存储过程中参数和数据类型的关系。

xi. 注意insert、update操作的数据量,防止与其他应用冲突。如果数据量超过200个数据页面(400k),那么系统将会进行锁升级,页级锁会升级成表级锁。

b) 索引的使用规范:

i. 索引的创建要与应用结合考虑,建议大的OLTP表不要超过6个索引。

ii. 尽可能的使用索引字段作为查询条件,尤其是聚簇索引,必要时可以通过index index_name来强制指定索引

iii. 避免对大表查询时进行table scan,必要时考虑新建索引。

iv. 在使用索引字段作为条件时,如果该索引是联合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用。

v. 要注意索引的维护,周期性重建索引,重新编译存储过程。

c) tempdb的使用规范:

i. 尽量避免使用distinct、order by、group by、having、join、cumpute,因为这些语句会加重tempdb的负担。

ii. 避免频繁创建和删除临时表,减少系统表资源的消耗。

iii. 在新建临时表时,如果一次性插入数据量很大,那么可以使用select into代替create table,避免log,提高速度;如果数据量不大,为了缓和系统表的资源,建议先create table,然后insert。

iv. 如果临时表的数据量较大,需要建立索引,那么应该将创建临时表和建立索引的过程放在单独一个子存储过程中,这样才能保证系统能够很好的使用到该临时表的索引。

v. 如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先truncate table,然后drop table,这样可以避免系统表的较长时间锁定。

vi. 慎用大的临时表与其他大表的连接查询和修改,减低系统表负担,因为这种操作会在一条语句中多次使用tempdb的系统表。

d) 合理的算法使用:

根据上面已提到的SQL优化技术和ASE Tuning手册中的SQL优化内容,结合实际应用,采用多种算法进行比较,以获得消耗资源最少、效率最高的方法。具体可用ASE调优命令:set statistics io on, set statistics time on , set showplan on 等。

热心网友 时间:2022-04-07 18:05

tt 如果有 ID 的话
select count(ID) from tt; 是最高的;
否则相差不大
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
邯郸哪些酒店有浴缸 关于选择快递公司 问一下,不到1公斤的东西寄到1500公里外要多少钱。什么快递便宜点。 家电科普 电热水器安全使用那些事儿 教你如何安全使用家电? 水果有农药残留怎么办 荣耀之光手游下载如何下载 自考问答:心理障碍常见的判别标准有几种 王者荣耀荣耀之光头像框获得方法一览[图]-手游攻略-游戏鸟手游网_百度... ...七八次体检就是最近两个月做了两次 明天又要体检入职 做那个胸... oracle的exist和group by同时出现时,如何使用,举一个例子 ORACLE中怎么使用exists来判断是否存在记录 oracle数据库中可以用 if exists 吗,我用为什么报错 很懒,不愿意收拾屋子怎么办 男朋友太邋遢,从不收拾屋子怎么办? 不爱收拾屋子和不爱干净有什么不一样 每天早上起来口干舌燥是什么回事 早上起来口干舌燥怎么办 早上起床口干舌燥,可能是哪些原因? 我女朋友,总觉得我懒,不爱收拾屋子,为此我们总吵架,是不是我真的错了? 每天早起都口干舌燥。 早起口干舌燥是什么原因 不爱收拾屋子的人性格 早上起来开始就口干舌燥 老婆不喜欢收拾屋子怎么办? 早上起床之后会感觉口干舌燥,并且嘴巴会有异味,是什么原因呢? 不爱收拾屋子的女性是什么心理 每天早晨起来口干舌燥是怎么回事?应该怎么办? 不爱收拾家,如何是好呢? 男生都不爱收拾屋子吗 急求,在oracle中有没有像sqlserver 中的 if exists()用法的函数,下面是... oracle中not in 、not exists、外连接怎么用 oracle数据库impdp 用了table_exists_action=truncate, 一张_百... oracle sql文问题 我现在使用not exists 遇到问题 oracle数据库impdp 用了table_exists_action=replace,一张业务_百度知 ... ...使用not exists怎么进行判断,下面是我的sql谢谢! 大骨头炖莲藕的做法窍门 莲藕大骨汤的做法 莲藕大骨汤的家常做法 大骨头炖莲藕怎么做好吃 大骨头莲藕汤的做法 龙骨煲莲藕怎样做好吃? 大骨藕汤怎么熬才好喝 莲藕炖大骨头汤的做法 cf跳跳乐怎么建房 cf跳跳乐怎么回到上一关 cf跳跳乐模式具体怎么玩 cf跳跳乐怎么创建房间 游戏玩到怀疑人生,穿越火线跳跳乐模式有哪些不为人知的小技巧? cf跳跳乐加速带怎么用