`
lxk1314
  • 浏览: 63645 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

特殊SQL语句及优化原则【C】

阅读更多
1. 索引的使用:
(1).当插入的数据为数据表中的记录数量的10%以上,首先需要删除该表的索引来提高数据的插入效率,当数据插入后,再建立索引。
(2).避免在索引列上使用函数或计算,在where子句中,如果索引是函数的一部分,优化器将不再使用索引而使用全表扫描。如:
低效:select * from dept where sal*12 >2500;
高效:select * from dept where sal>2500/12;
(3).避免在索引列上使用not和 “!=”,索引只能告诉什么存在于表中,而不能告诉什么不存在于表中,当数据库遇到not 和 “!=”时,就会停止使用索引而去执行全表扫描。
(4).索引列上>=代替>
低效:select * from emp where deptno > 3
高效:select * from emp where deptno >=4
两者的区别在于,前者dbms将直接跳到第一个deptno等于4的记录,而后者将首先定位到deptno等于3的记录并且向前扫描到第一个deptno大于3的。
(5).非要对一个使用函数的列启用索引,基于函数的索引是一个较好的方案。
2. 游标的使用:
   当在海量的数据表中进行数据的删除、更新、插入操作时,用游标处理的效率是最慢的,但是游标又是必不可少的,所以正确使用游标十分重要:
   (1). 在数据抽取的源表中使用时间戳,这样每天的维表数据维护只针对更新日期为最新时间的数据来进行,大大减少需要维护的数据记录数。
   (2). 在insert和update维表时都加上一个条件来过滤维表中已经存在的记录,例如:
insert into dim_customer select * from ods_customer where ods_customer.code not exists (dim_customer.code)
ods_customer为数据源表。dim_customer为维表。
   (3). 使用显式的游标,因为隐式的游标将会执行两次操作,第一次检索记录,第二次检查too many rows这个exception,而显式游标不执行第二次操作。
分享到:
评论

相关推荐

    SQL优化原则

    ### SQL优化原则及注意事项 #### 一、问题的提出与背景 在软件开发过程中,特别是在初期阶段,由于数据库中的数据量相对较少,开发者往往难以直观感受到不同SQL语句编写方式所带来的性能差异。然而,随着互联网...

    Java EE中SQL语句的自动构造.pdf

    自动构造SQL语句的设计原则和实现过程中,一个关键步骤是利用Java EE中的HttpServletRequest对象来获取页面表单中用户输入的数据。通过调用request.getParameterNames()方法可以读取表单元素的名称,进而通过request...

    SQL Server 2005查询优化方法研究.pdf

    文章标题为“SQL Server 2005查询优化方法研究”,在文档描述中对文章内容进行了概述,提出了文章旨在研究SQL Server 2005数据库应用系统在实际应用中查询优化的问题,并且着重从索引、SQL语句优化、存储过程等方面...

    MS SQLSERVER面试题

    6) **查询语句**(Query Statement): 正确的SQL语句用于查询价格高于“海天酱油”产品价格的记录是d) SELECT * FROM 产品 WHERE 价格 > (SELECT 价格 FROM 产品 WHERE 产品名称 = '海天酱油')。 7) **范式理论**...

    db2的经典教材,适合初学者

    - 在嵌入式SQL中,SQL语句被包含在特殊的标记内,如`EXEC SQL`和`END-EXEC`,这些标记告诉编译器如何处理SQL语句。 - 宿主语言负责处理程序流程控制、变量管理及错误处理,而SQL则专注于数据操作。 #### 2. 授权...

    电大-数据库SQL.pdf

    10. **存储过程**:存储过程可以包含多条Transact-SQL语句,用GO语句结束批处理,RETURN语句结束过程执行。 **SQL查询语句功能** 1. 查询语句的功能描述:需要提供具体的SQL查询语句才能解释其功能,例如选择商品...

    医院门诊收费管理系统c#+sql

    2. 查询优化:SQL的查询语句可以高效地检索所需信息,如快速查找某个患者的缴费记录,或者统计每日总收入等。通过索引和查询优化,提高系统的响应速度。 3. 数据安全:SQL提供权限控制和加密功能,确保只有授权人员...

    ORACLE9i_优化设计与系统调整

    §12.3.6 一般的SQL语句优化 143 §12.4 SQL语句优化技巧 144 §12.4.1 对所有SQL语句执行EXPLAIN_PLAN 145 §12.4.2 磁盘读和缓冲区获取 146 §12.4.3 判定式崩溃 146 §12.5 使用EXISTS和IN 148 §12.6 分离事务...

    基于VC++的工资管理系统

    ADO提供了简单的API,使得开发人员可以方便地执行SQL语句、处理结果集、管理和操作数据库对象。在本系统中,ADO扮演了至关重要的角色,它使得VC++应用程序能高效地与SQL Server进行通信,实现数据的存取和更新。 ...

    Oracle数据库学习指南

    16.SQL语句性能调整原则 17.创建和使用分区的表 18.基于成本的优化器一般错误概念和问题 19.Delphi 3_0中连接数据库的三种方式 20.远程数据库的访问 21.监控数据库性能的SQL 22.简单实现数据库表空间的...

    节 索引创建与使用PPT学习教案.pptx

    5.2 创建索引的方法主要有三种:通过企业管理器、Transact-SQL语句和索引优化向导。在企业管理器中,用户可以选择要创建索引的表,编辑索引属性,或删除已有索引。Transact-SQL语句提供了更灵活的创建方式,比如...

    微软认证数据库 sql server 2005

    SQL Server 2005是微软公司推出的一款关系型数据库管理系统,它在数据库管理、性能优化、安全性等方面都有显著提升。以下是对标题和描述中涉及知识点的详细解释: 1. **参照完整性**:在题目描述的第一题中,涉及到...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    目录 推荐序 前言 第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本章小结

    数据库原理与应用题库.docx

    - **题目描述**:统计学生的学号及平均成绩,定义为一个视图,创建这个视图的 SQL 语句中,使用的子句不包括? - **选项**: - A. SELECT - B. FROM - C. GROUP BY - D. ORDER BY - **答案**:D - **解析**:...

    PLSQL最佳实践

    - 使用变量来构建SQL语句时,确保先解析字符串变量。 - 示例:`EXECUTE IMMEDIATE 'SELECT * FROM ' || v_table_name;` **3.16.2 避免把变量值的串联放入动态的SQL字符串** - 直接串联变量值可能会导致安全问题和...

    C语言 填空题整理

    查询可以基于SQL语句或者图形化界面进行。 ### 52. 栈和队列的区别 - **选项解析**:栈和队列都是线性数据结构,但它们的操作方式不同。栈遵循后进先出的原则,队列遵循先进先出的原则。栈通常用于实现函数调用的...

    数据库错题(新版).doc

    在给定的文档中,我们看到一些关于数据库理论和SQL语言的错题及其答案,这些题目覆盖了关系数据库的基本原理,如函数依赖(FD)、关系模式的分解、并发控制问题、数据库系统的特点以及SQL语句的使用。 1. **函数...

Global site tag (gtag.js) - Google Analytics