随笔分类 - ORACLE开发
摘要:目录--- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scans, FTS) 2) 通过ROWID的表存取(Table Access by ROWID或rowid lookup) 3)索引扫描(Index Scan或index lookup)有4种类型的索引扫描: (1) 索引唯一扫描(index unique
阅读全文
摘要:1 With子句1.1 学习目标掌握with子句用法,并且了解with子句能够提高查询效率的原因。1.2 With子句要点1. with子句的返回结果存到用户的临时表空间中,只做一次查询,反复使用,提高效率。2. 如果定义了with子句,而在查询中不使用,那么会报ora-32035 错误:未引用在with子句中定义的查询名。3. 前面的with子句定义的查询在后面的with子句中可以使用。但是一个with子句内部不能嵌套with子句。4. 当一个查询块名字和一个表名或其他的对象相同时,解析器从内向外搜索,优先使用子查询块名字。5. with查询的结果列有别名,引用的时候必须使用别名或*。6.
阅读全文
摘要:最近做查询时,写的一条查询语句用了两个IN,导致tuexdo服务积压了不少,用户没骂就不错了。最后经过技术经理的点拨,sql语句性能提升了大约10倍,主要用了表连接、建索引、exists。这才感叹SQL性能优化的重要性啊,网上搜了半天,找到一篇令我非常满意的日志,忍不住分享之:一、操作符优化: 1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询 外层
阅读全文
摘要:SQL的优化应该从5个方面进行调整:1.去掉不必要的大型表的全表扫描2.缓存小型表的全表扫描3.检验优化索引的使用4.检验优化的连接技术5.尽可能减少执行计划的CostSQL语句:是对数据库(数据)进行操作的惟一途径;消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;可以有不同的写法;易学,难精通。SQL优化:固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致ORACLE优化器:在任何可能的时候都会对表达式进行评估,并且把特
阅读全文
摘要:一个表,两个字段,A、B,取出每个A类型的B由大到小排列的前两个。create table test_a( a varchar2(10), b int)truncate table test_a;insert into test_a values ('a',10);insert into test_a values ('a',1);insert into test_a values ('a',2);insert into test_a values ('a',3);insert into test_a values ('a
阅读全文
摘要:我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢?重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。一、对于部分字段重复数据的删除先来谈谈如何查询重复的数据吧。下面语句可以查询出那些数据是重复的:select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1将上面的>号改为=号就可以查询出没有重复的数据了。想要删除这些重复的数据,可以使用下面语句进行删除delete from 表名 a where 字段1,字段2 in
阅读全文
摘要://创建临时表空间SQL> create temporary tablespace user_temp tempfile 'D:\app\Administrator\oradata\OLDCAT\xb_temp.dbf' size 50mautoextend onnext 50m maxsize 20480mextent management local;Tablespace created//创建数据表空间SQL> create tablespace xb_dateloggingdatafile 'D:\app\Administrator\oradata\
阅读全文
摘要:前言:之前在虚拟机里装了Solaris以及CentOS,还分别安装了ORACLE,由于分辨率的问题,屏幕太小,使用极度不方便。昨天拿了一台台式机{内存512,赛扬2.62}安装了三个多小时终于弄上去了,记下来以备不测{环境CentOS、Linux ORACLE 10g},并且希望能出一册关于ORACLE开发系列的基础教程,欢迎大家收藏。一、选择所要使用的虚拟机和操作系统、DBMS我这里统一一个平台为:VMware虚拟机、CentOS-5.5-i386 Linux、ORACLE 10201_database_linux32。关于虚拟机的安装不做解释,相信大家在WINDOWS下都会安装。二、安装.
阅读全文
摘要:在企业应用中,经常会开发报表系统,而在报表中又经常用到行列转换,这里有一个经典的应用实例:原表: 姓名科目 成绩 张三语文80张三 数学 90 张三 物理 85 李四语文 85 李四物理 82 李四英语 90李四政治 70 王五英语 90转换后的表: 姓名数学 物理 英语 语文 政治李四082908570王五00900 0张三 90850 80 0实例:Declare @sql varchar(8000)Set @sql = 'Select Name as 姓名'Select @sql = @sql + ',sum(case Subject when ''
阅读全文

浙公网安备 33010602011771号