3. 据抽取和上载时的sql优化:
(1). Where 子句中的连接顺序:
oracle采用自下而上的顺序解析where子句,根据这个原理,表之间的连接必须写在其他where条件之前,那些可以过滤掉大量记录的条件必须写在where子句的末尾。如:
低效:select * from emp e where sal>5000 and job = ‘manager’ and 25<(select count (*) from emp where mgr=e.empno);
高效:select * from emp e where 25<(select count(*) from emp where mgr=e.empno) and sal>5000 and job=’manager’;
(2). 删除全表时,用truncate 替代 delete,同时注意truncate只能在删除全表时适用,因为truncate是ddl而不是dml。
(3). 尽量多使用commit
只要有可能就在程序中对每个delete,insert,update操作尽量多使用commit,这样系统性能会因为commit所释放的资源而大大提高。
(4). 用exists替代in ,可以提高查询的效率。
(5). 用not exists 替代 not in
(6). 优化group by
提高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 having job=’president’ or job=’manager’ group by job;
(7). 有条件的使用union-all 替代 union:这样做排序就不必要了,效率会提高3到5倍。
(8). 分离表和索引
总是将你的表和索引建立在不同的表空间内,决不要将不属于oracle内部系统的对象存放到system表空间内。同时确保数据表空间和索引表空间置于不同的硬盘控制卡控制的硬盘上。
分享到:
相关推荐
- **分层命名**: SQL语句别名的命名,分层命名,从第一层次至第四层次,分别用 P、S、U、D (都是大写字母) 表示,取意为 Part, Segment, Unit, Detail。 - **层级区分**: 对于同一层次的多个子句,在字母后加 1、2、...
这些原则是数据库优化的基本准则,遵循它们可以帮助编写出更高效的SQL语句,提升数据库系统的整体性能。在实际应用中,结合具体数据库设计和业务场景灵活运用,可以进一步优化查询效率。对于数据库性能调优,理解...
- **预编译SQL语句**:通过PreparedStatement来提高执行效率并防止SQL注入。 - **分析查询计划**:使用数据库提供的工具分析查询计划,找出性能瓶颈。 遵循这些规范和优化技巧,可以极大地提升SQL代码的品质,降低...
6) **查询语句**(Query Statement): 正确的SQL语句用于查询价格高于“海天酱油”产品价格的记录是d) SELECT * FROM 产品 WHERE 价格 > (SELECT 价格 FROM 产品 WHERE 产品名称 = '海天酱油')。 7) **范式理论**...
10. **存储过程**:存储过程可以包含多条Transact-SQL语句,用GO语句结束批处理,RETURN语句结束过程执行。 **SQL查询语句功能** 1. 查询语句的功能描述:需要提供具体的SQL查询语句才能解释其功能,例如选择商品...
目录 推荐序 前言 第1章 认识Oracle RAC 1.1 RAC产生的背景 1.2 RAC体系结构 1.2.1整体结构 1.2.2物理层次结构 1.2.3逻辑层次结构 ...15.4.4 SQL优化 15.4.5 SQL行源生成 15.4.6 SQL执行 15.5本章小结
- **题目描述**:统计学生的学号及平均成绩,定义为一个视图,创建这个视图的 SQL 语句中,使用的子句不包括? - **选项**: - A. SELECT - B. FROM - C. GROUP BY - D. ORDER BY - **答案**:D - **解析**:...
索引优化原则 - 为经常出现在`WHERE`子句、`ORDER BY`和`DISTINCT`中的字段创建索引。 - 为经常作为目标连接条件的列上创建索引。 - 不要在频繁执行DML操作的表上创建过多索引。 - 限制索引数量,避免过度索引。 #...
选择B可能是在讨论如何通过优化SQL语句来提高查询效率。 #### (15)D) **知识点:** 安全性管理 **解析:** 安全性管理是确保数据安全的重要环节。选项D可能是在讨论访问控制列表、权限分配等安全性措施。 ####...
#### 一、多表关系与设计原则 在数据库设计中,为了反映业务逻辑的真实情况,通常需要定义不同表之间的关系。这些关系主要包括:一对多(或多对一)、多对多以及一对一。 - **一对多(多对一)**:例如部门与员工...
SQL语句通常以分号结束,但也可以使用`\g`。`AS`关键字用于重命名列名,`ESCAPE`用于转义特殊字符。 以上内容是对MySQL商业分析的一个全面概述,涵盖了从基础到高级的多个方面,对于理解并有效利用MySQL进行数据...
- 要找出每个部门每个职位类别中的最高工资,正确的SQL语句应包含`GROUP BY`子句来按部门和职位分类,并使用`MAX`函数来获取最高工资。 - A. 不正确,`WHERE`子句中的`MAX(salary)`应该在`HAVING`子句中使用,且...
3. 栈的概念:栈是一种特殊的线性表,遵循“后进先出”(LIFO)原则,只允许在一端进行插入(入栈)和删除(出栈)操作。C选项正确地描述了这一点。 4. 数据结构与存储结构:一个逻辑数据结构可以有不同的存储实现...
- 在嵌入式SQL中,通过使用特殊的字符来区分SQL语句和主语言语句。例如,使用`EXEC SQL`开始一个SQL语句,用`END-EXEC`结束。 2. **关系系统查询优化的一般准则** - **选择操作先于连接操作**:在连接多个表之前...
- **WHILE**:通常出现在编程语言中,表示一种循环结构,并非SQL语句的一部分。 - **IF**:在SQL中,用于条件判断,但不是在SELECT语句中进行条件选择的标准用法。 ### 4. MySQL中创建视图的WITH CHECK OPTION子句 ...
SHOW CREATE TABLE table:显示创建表的 SQL 语句。 #### 二、多选题知识点解析 **1. MySQL 表的列约束** - **知识点概述:** - MySQL 中,表的列可以设置多种约束,以保证数据的完整性和一致性。 - **选项...
21. mysqld是MySQL服务器守护进程,不用于执行SQL语句。 22. Connection对象在Java数据库编程中用于建立与数据库的连接。 23. 创建普通文本框的HTML标记是`<input type="text">`。 24. 数据模型是数据库系统中对...
4. **SQL过滤**:涉及敏感信息查询时,SQL语句中必须包含特定过滤条件,例如`AgentID`。 5. **数据导出**:涉及敏感数据的大规模导出操作需要得到高层管理人员的审批。 #### 十一、UI控件命名 1. **Label**:`lbl`...
- 特殊字符匹配:如`\d`匹配数字,`\s`匹配空白字符。 - 贪婪模式和非贪婪模式:默认的贪婪模式会尽可能多地匹配,非贪婪模式则尽可能少匹配。 - 分组:用括号`()`定义一个匹配组,可捕获和回溯匹配的部分。 - ...