SELECT * FROM record WHERE amount/30 < 1000 --11秒
SELECT * FROM record WHERE convert(char(10) date 112) = '19991201' --10秒
分析:
WHERE 子句中对列的任何操作结果都是在 SQL 运行时逐列计算得到的 , 因此它不得不进行表搜索 , 而没有使用该列上面的索引 。
如果这些结果在查询编译时就能得到 , 那么就可以被 SQL 优化器优化 , 使用索引 , 避免表搜索 , 因此将 SQL 重写成下面这样:
SELECT * FROM record WHERE card_no like '5378%' -- < 1秒
SELECT * FROM record WHERE amount < 1000*30 -- < 1秒
SELECT * FROM record WHERE date = '1999/12/01' -- < 1秒
30、当有一批处理的插入或更新时 , 用批量插入或批量更新 , 绝不会一条条记录的去更新 。
31、在所有的存储过程中 , 能够用 SQL 语句的 , 我绝不会用循环去实现 。
例如:列出上个月的每一天 , 我会用 connect by 去递归查询一下 , 绝不会去用循环从上个月第一天到最后一天 。
**【需要Java面试题或者技能提升资料的小伙伴点赞+转发 , 关注我之后私信【666】或【888】后 , 即可获取】**)
32、选择最有效率的表名顺序(只在基于规则的优化器中有效):
Oracle 的解析器按照从右到左的顺序处理 FROM 子句中的表名 , FROM 子句中写在最后的表(基础表 driving table)将被最先处理 , 在 FROM 子句中包含多个表的情况下 , 你必须选择记录条数最少的表作为基础表 。
如果有 3 个以上的表连接查询 , 那就需要选择交叉表(intersection table)作为基础表 , 交叉表是指那个被其他表所引用的表 。
33、提高 GROUP BY 语句的效率 , 可以通过将不需要的记录在 GROUP BY 之前过滤掉 。 下面两个查询返回相同结果 , 但第二个明显就快了许多 。
低效:
SELECT JOB AVG(SAL)
FROM EMP
GROUP BY JOB
HAVING JOB = 'PRESIDENT'
OR JOB = 'MANAGER'
高效:
SELECT JOB AVG(SAL)
FROM EMP
WHERE JOB = 'PRESIDENT'
OR JOB = 'MANAGER'
GROUP BY JOB
34、SQL 语句用大写 , 因为 Oracle 总是先解析 SQL 语句 , 把小写的字母转换成大写的再执行 。
35、别名的使用 , 别名是大型数据库的应用技巧 , 就是表名、列名在查询中以一个字母为别名 , 查询速度要比建连接表快 1.5 倍 。
36、避免死锁 , 在你的存储过程和触发器中访问同一个表时总是以相同的顺序;事务应经可能地缩短 , 在一个事务中应尽可能减少涉及到的数据量;永远不要在事务中等待用户输入 。
37、避免使用临时表 , 除非却有需要 , 否则应尽量避免使用临时表 , 相反 , 可以使用表变量代替 。 大多数时候(99%) , 表变量驻扎在内存中 , 因此速度比临时表更快 , 临时表驻扎在 TempDb 数据库中 , 因此临时表上的操作需要跨数据库通信 , 速度自然慢 。
38、最好不要使用触发器:
- 触发一个触发器 , 执行一个触发器事件本身就是一个耗费资源的过程;
- 如果能够使用约束实现的 , 尽量不要使用触发器;
- 不要为不同的触发事件(Insert、Update 和 Delete)使用相同的触发器;
- 不要在触发器中使用事务型代码 。
- 表的主键、外键必须有索引;
- 数据量超过 300 的表应该有索引;
- 经常与其他表进行连接的表 , 在连接字段上应该建立索引;
- 经常出现在 WHERE 子句中的字段 , 特别是大表的字段 , 应该建立索引;
- 索引应该建在选择性高的字段上;
- Intel发布新显卡驱动,Arc A770游戏性能最高提升8%
- 盛和金刚网再添数控设备,持续提升生产加工能力!
- 苹果手机相信大家都不陌生|iphone12还值得入手吗,这些细节的提升能不能值1000
- 大家应该都知道|8+256g版本降到2499元,骁龙778g处理器,续航提升
- 对于小米手机|小米12x抛开参数只讲体验,细节提升明显,3199元贵吗
- oppo reno|骁龙8Gen2相比骁龙8+有多大的提升,这个幅度你还满意吗?
- excel|Excel如何快速预览查看图片?
- 数据库|Office365中的这几个高能函数,正中使用痛点,用起来真香!
- 普通人如何通过副业赚钱?四个快速变现的建议!干货分享
- 运营商|安利几款能提升手机体验感的神奇App,让你的手机越用越好用