![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle
文章平均质量分 67
jie1521836
这个作者很懒,什么都没留下…
展开
-
oracle 常用SQL 示例
a) 增删改查语句常用语句基本相同,注意在oracle查询后不能用nolock,不同数据库的函数处理如有不同按第2条描述的函数不同更换即可。下面是oracle特有的功能将查询结果插入另外一张有相同表结构的表中INSERT INTO MYTEST3 select * from TEST3;创建临时表(Oracle现在可以使用 CREATE GLOBAL TEMPORARY TABLE命令来实现建立临...原创 2018-07-16 10:19:06 · 289 阅读 · 0 评论 -
Oracle sql 性能优化调整(8/9/10/11/12/13)
8. 使用DECODE函数来减少处理时间使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.例如: SELECT COUNT(*),SUM(SAL) FROMEMP WHERE DEPT_NO = 0020 AND ENAME LIKE‘SMITH%’; SELECT COUNT(*),SUM(SAL) FROMEMP...原创 2018-07-18 08:41:12 · 165 阅读 · 0 评论 -
Oracle sql 性能优化调整(14/15/16/17/18/19)
14. 用Where子句替换HAVING子句 避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销. 例如: 低效: SELECT REGION,AVG(LOG_SIZE) FROM LOCATION...原创 2018-07-18 08:41:27 · 179 阅读 · 0 评论 -
Oracle sql 性能优化调整(20/21/22/23/24/25)
20. 用表连接替换EXISTS 通常来说 , 采用表连接的方式比EXISTS更有效率 SELECT ENAME FROM EMP E WHERE EXISTS (SELECT ‘X’ FROM DEPT WHERE DEPT_NO = E....原创 2018-07-18 08:41:37 · 149 阅读 · 0 评论 -
Oracle sql 性能优化调整(26/27/28/29)
26. 索引的操作 ORACLE对索引有两种访问模式. 索引唯一扫描 ( INDEX UNIQUE SCAN) 大多数情况下, 优化器通过WHERE子句访问INDEX. 例如:表LODGING有两个索引 : 建立在LODGING列上的唯一性索引LODGING_PK和建立在MANAGER列上的非唯一性索引LODGING$MANAGER. ...原创 2018-07-18 08:41:49 · 208 阅读 · 0 评论 -
Oracle sql 性能优化调整(31/32/33)
30. 不明确的索引等级 当ORACLE无法判断索引的等级高低差别,优化器将只使用一个索引,它就是在WHERE子句中被列在最前面的. 举例: DEPTNO上有一个非唯一性索引,EMP_CAT也有一个非唯一性索引. SELECT ENAME FROM EMP WHERE DEPTNO > 20 ...原创 2018-07-18 08:42:01 · 106 阅读 · 0 评论 -
Oracle sql 性能优化调整(34/35/36)
34. 避免在索引列上使用NOT通常, 我们要避免在索引列上使用NOT, NOT会产生在和在索引列上使用函数相同的影响. 当ORACLE”遇到”NOT,他就会停止使用索引转而执行全表扫描. 举例: 低效: (这里,不使用索引) SELECT … FROM DEPT WHERE DEPT_CODE NOT = 0; ...原创 2018-07-18 08:42:11 · 122 阅读 · 0 评论 -
Oracle sql 性能优化调整(37/38/39)
37. 用IN来替换OR 下面的查询可以被更有效率的语句替换: 低效: SELECT….FROM LOCATIONWHERE LOC_ID = 10OR LOC_ID = 20OR LOC_ID = 30 高效SELECT…FROM LOCATIONWHERE LOC_IN IN (10,20,30); ...原创 2018-07-18 08:42:21 · 118 阅读 · 0 评论 -
Oracle sql 性能优化调整(40/41/42/43)
40. ORACLE内部操作当执行查询时,ORACLE采用了内部的操作. 下表显示了几种重要的内部操作. ORACLE Clause 内部操作 ORDER BY SORT ORDER BY UNION UNION-ALL MINUS ...原创 2018-07-18 08:42:32 · 192 阅读 · 0 评论 -
Oracle sql 性能优化调整(44/45/46)
44. 避免改变索引列的类型.当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换.假设 EMPNO是一个数值类型的索引列.SELECT …FROM EMPWHERE EMPNO = ‘123’实际上,经过ORACLE类型转换, 语句转化为:SELECT …FROM EMPWHERE EMPNO = TO_NUMBER(‘123’)...原创 2018-07-19 15:18:57 · 173 阅读 · 0 评论 -
oracle开发工具介绍
a) SqlDbx 王金生曾推荐过的一款数据库客户端开发工具,使用容易,不需要额外的安装其它插件,有sql提示功能,支持Oracle,Sybase ASE, IBM,DB2/UDB, MicrosoftSQL Server 和ODBC数据源,免费绿色版。b) PLSQL Developer 专门针对oracle开发的一款比较专业的客户端工具,除了常用的数据库操作外,还支持存储过程及函数的调试功能...原创 2018-07-16 10:15:01 · 3090 阅读 · 0 评论 -
Oracle sql 性能优化调整(5、6、7)
5. WHERE子句中的连接顺序. ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间156.3秒)SELECT …FROM EMP EWHERE SAL > 50000AND JOB = ‘M...原创 2018-07-18 08:40:57 · 147 阅读 · 0 评论 -
Oracle sql 性能优化调整(4)
4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记录...原创 2018-07-17 16:39:38 · 102 阅读 · 0 评论 -
PL/SQL语言
首先我们看一个简单之例子,下面这个例子是统计从1至100的总和.declarei number:=0; /*声明变量井给初值*/t number:=1;error_message exception; /*声明一个出错处理*/begin for t in 1..100 loop i:=i+t; end loop; if i>=5050 then rais...原创 2018-07-16 10:24:41 · 237 阅读 · 0 评论 -
oracle数据库日常维护(1)
1. 检查数据库基本状况主要对数据库的基本状况进行检查,其中包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。SQL> select instance_name,host_name,startup_time,status,database_status from v$instance; INSTANCE_NAME HOST_NAME STAR...原创 2018-07-16 10:28:44 · 7646 阅读 · 0 评论 -
oracle数据库日常维护(2)
2、检查系统和oracle日志文件在本节主要检查相关的日志文件,包含:检查操作系统的日志文件,检查Oracle日志文件,检查Oracle核心转储目录,检查Root用户和Oracle用户的email,总共四个部分。1.1. 检查操作系统日志文件# cat /var/log/messages |grep failed查看是否有与Oracle用户相关的出错信息。1.2. 检查oracle日志文件[ora...原创 2018-07-16 10:30:26 · 916 阅读 · 0 评论 -
oracle数据库日常维护(3)
3、检查Oracle对象状态在本节主要检查相关Oracle对象的状态,包含:检查Oracle控制文件状态,检查Oracle在线日志状态,检查Oracle表空间的状态,检查Oracle所有数据文件状态,检查Oracle所有表、索引、存储过程、触发器、包等对象的状态,检查Oracle所有回滚段的状态,总共六个部分。1.1. 检查Oracle控制文件状态SQL> select status,nam...原创 2018-07-16 10:31:25 · 552 阅读 · 0 评论 -
oracle数据库日常维护(4)
4、检查Oracle相关资源的使用情况在本节主要检查Oracle相关资源的使用情况,包含:检查Oracle初始化文件中相关的参数值,检查数据库连接情况,检查系统磁盘空间,检查Oracle各个表空间使用情况,检查一些扩展异常的对象,检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值,总共七个部分。1.1. 检查Oracle初始化文件中相关参数值SQL> select res...原创 2018-07-16 10:32:34 · 728 阅读 · 0 评论 -
oracle数据库日常维护(5)
5、 检查Oracle数据库备份结果在本节主要检查Oracle数据库备份结果,包含:检查数据库备份日志信息,检查backup卷中文件产生的时间,检查oracle用户的email,总共三个部分。1.1. 检查数据库备份日志信息假设:备份的临时目录为/backup/hotbakup,我们需要检查2009年7月22日的备份结果,则用下面的命令来检查: #cat /backup/hotbackup/hot...原创 2018-07-16 10:33:38 · 755 阅读 · 0 评论 -
oracle数据库日常维护(7)
7、检查数据库安全性在本节主要检查Oracle数据库的安全性,包含:检查系统安全信息,定期修改密码,总共两个部分。1.1. 检查系统安全日志信息系统安全日志文件的目录在/var/log 下,主要检查登录成功或失败的用户日志信息。检查登录成功的日志:[root@rac2 ~]# grep -i accepted /var/log/secureJan 8 08:44:43 r...原创 2018-07-17 16:38:09 · 1424 阅读 · 0 评论 -
oracle数据库日常维护(8)
8、其他检查在本节主要检查当前crontab任务是否正常,检查Oracle Job是否有失败等共六个部分。1.1. 检查当前crontab任务是否正常[oracle@AS14 ~]$ crontab -l1.2. Oracle Job是否有失败Sql>select job,what,last_date,next_date,failures,broken from dba_...原创 2018-07-17 16:38:21 · 340 阅读 · 0 评论 -
Oracle sql 性能优化调整(1)
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(...原创 2018-07-17 16:39:08 · 206 阅读 · 0 评论 -
Oracle sql 性能优化调整(2)
2. 访问Table的方式 ORACLE 采用两种访问表中记录的方式:a. 全表扫描 全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描. b. 通过ROWID访问表 你可以采用基于ROWID的访问方式情况,提高访问表的效率,...原创 2018-07-17 16:39:18 · 119 阅读 · 0 评论 -
Oracle sql 性能优化调整(3)
3. 共享SQL语句为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享. 因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同, ORACLE就能很快获得...原创 2018-07-17 16:39:28 · 173 阅读 · 0 评论 -
oracle 与 sqlserver 语法大比较
a) oracle各类型字段描述 数据类型取值范围描述备注Char(n)n=1 to 2000字节存储固定长度的字符串。默认长度为1。 Varchar2(n)n=1 to 4000字节可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。如果数据长度没有达到最大值n,Oracle会根据数据大小自动调...原创 2018-07-16 10:17:51 · 8678 阅读 · 0 评论