- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
常见SQL语句优化
* Oracle SQL语句优化 */25 表结构与开发人员 要理解表与表对应的索引的结构 : 可用DBMS_METADATA包列出表结构与约束及索引的结构 用DBMS_METADATA.GET_DDL也可列出其它对象的DDL … SET HEADING OFF SET PAGESIZE 100 SET LINESIZE 160 SET TRISPOOL ON SET LONG 6000 spool c:\list_stru SELECT Select dbms_metadata.get_ddl(||chr(39)||object_type||chr(39)||, ||chr(39)||object_name||chr(39)||) from dual; FROM USER_OBJECTS ORDER BY OBJECT_TYPE,OBJECT_NAME; spool off * Oracle SQL语句优化 */25 表结构与约束 DBA_TABLES OWNER TABLE_NAME DBA_CONSTRAINTS R 为引用完整性(referential integrity) P 为主键 C 检查(check constraint on a table) U 唯一索引(unique key) V 视图可带的检查(with check option, on a view) O视图中的只读(with read only, on a view) * Oracle SQL语句优化 */25 统计任务与业务处理 大量数据的统计 : 如果经常进行大量的统计,建议选择服务器闲置时间进行; 采用作业或日程表实现; 有多个作业时要分配到不同的时间段,避免资源的争用; 参考“资源管理”… * * * * * * Oracle SQL语句优化 Oracle SQL语句优化 Oracle Database几个常见SQL优化 * Oracle SQL语句优化 */25 内容提要 FROM子句与WHERE子句顺序 几个不推荐与推荐方法 实体视图与查询重写 新SQL语句使用建议 编码人员与表结构的理解 * Oracle SQL语句优化 */25 FROM多表的顺序 ORACLE的解析器按照从右到左的顺序 FROM子句中写在最后的表(基础表 driving table)将被最先处理 ; 选择记录条数最少的表作为基础表 --表 TAB1 有16,384 数据行 --表 TAB2 有10 个数据行 ? --方法1(最佳): --选择TAB2作为基础表: select count(*) from tab1 , tab2 where . . . ? --方法2(不佳): --选择TAB2作为基础表 : select count(*) from tab2,tab1 where . . . * Oracle SQL语句优化 */25 FROM多表的顺序 FROM子句后三个表的情况: 例如:EMP表描述了LOCATION表和CATEGORY表的交集。 则EMP的顺序是关键:(这里EMP 是交叉表) 例1(效率高): SELECT * FROM LOCATION L , CATEGORY C, EMP E WHERE E.EMP_NO BETWEEN 1000 AND 2000 AND E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN; ? 例2(效率低): SELECT * FROM EMP E , LOCATION L , CATEGORY C WHERE E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN AND E.EMP_NO BETWEEN 1000 AND 2000; * Oracle SQL语句优化 */25 WHERE子句的连接顺序 采用自下而上的顺序解析WHERE子句 ; 表之间连接必须写在其他WHERE条件之前; 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。 例1(低效): SELECT … FROM EMP E WHERE SAL 50000 AND JOB = ‘MANAGER’ AND 25 ( SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO); 例2(高效): SELECT … FROM EMP E WHERE 25 ( SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL 50000 AND JOB = ‘MANAGER’; * Oracle SQL语句优化 */2
您可能关注的文档
- 高一新生入学教育调查问卷_50551.doc
- 骆驼和羊教学设计_12405.doc
- 高一语文上第四次作文学案《黄河九曲__写事要有点波澜》_531468.doc
- 高中历史应重视核心概念教学.doc
- 音乐教学案例_402936.docx
- 高中英语不规则动词_3356.docx
- 高效课堂之独学环节心得体会_59527.doc
- 高年级语文研修计划.docx
- 高中语文《诗三首》教案_新人教版必修2.docx
- 高效反思).doc
- 2024_2025学年高中生物模拟测试卷四含解析.doc
- 2024_2025年新教材高中英语Unit6NurturingnatureSectionⅡUsing.doc
- 2024_2025学年高中生物第5章细胞的能量供应和利用4_1捕获光能的色素和结构课后检测含解析新人.doc
- 2024_2025学年高中生物专题5生态工程阶段提升课学案新人教版选修3.doc
- 2024高考物理一轮复习专题80电磁感应中的图象问题练习含解析新人教版.doc
- 福建省2024_2025学年高中语文第四单元第12课我有一个梦想作业含解析新人教版必修2.doc
- 2024高考物理一轮复习第四章机械能第3节机械能守恒定律教案鲁科版.doc
- 2024_2025学年高中物理第十章热力学定律综合检测含解析新人教版选修3_3.doc
- 2024_2025学年高中物理模块综合测评含解析沪科版选修3_1.docx
- 2024_2025学年高中物理第二章交变电流章末测评含解析教科版选修3_2.doc
文档评论(0)