Oracle Database
文章平均质量分 65
王景远
这个作者很懒,什么都没留下…
展开
-
调整sql语句性能的几个要点
SQL语句性能调整的目标是: 去掉不必要的大表全表扫描 不必要的大表全表扫描会造成不必要的输入输出,而且还会拖垮整个数据库; 检查优化索引的使用 这对于提高查询速度来说非常重要 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写; 调整PCTFREE和PCTUSED等存储参数优化插入、更新或者删除等操作; 考虑数据库的优化器; 考虑数据表的全表扫描转载 2012-05-31 17:27:38 · 397 阅读 · 0 评论 -
Oracle SQL语句执行步骤
Oracle中SQL语句执行过程中,Oracle内部解析原理如下:1、当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法、表名、字段名等相关信息(如下图),这过程会花比较长的时间,因为它要分析语句的语法与语义。然后获得最优化后的执行计划(sql plan),并在内存中分配一定的空间保存该语句与对应的执行计划等信息。转载 2013-04-10 12:08:48 · 582 阅读 · 0 评论 -
oracle 取余 取整 字符串连接
sql中的取模,取整,字符串连接等操作:c = a mod b ;//取模c = trunc(a/b);//取整 //连接两个字符串,sql中不能用+号连接两个字符串c = a || b;或c = concat(a,b);----------------------------------------------------------关于Oracle取整的函数转载 2013-04-11 19:00:14 · 1824 阅读 · 0 评论 -
Oracle CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他转载 2013-04-12 13:57:13 · 382 阅读 · 0 评论 -
SQL计算工作日
本文摘录了两段SQL的小技巧,来解决工作中的一些常用到的问题。主要是为了记录一下第一条,这条SQL是用来计算两个日期中的工作日的方法,从ITPUT那边看来的,很实用的一段SQL,而且用的算法很好,值得学习。当然只能剔除掉周六周日,别的法定节假日肯定就不行了。另一个是写的如何打印日历,比较白痴的一段SQL,呵呵,顺手摘录一下。 1、用SQL直接取工作日: with转载 2013-04-11 18:09:34 · 7187 阅读 · 1 评论 -
count与NULL
select * from test001; SELECT COUNT(id),COUNT(NAME)FROM test001;总结:count函数会忽略值为NULL的行原创 2013-04-12 14:40:41 · 493 阅读 · 0 评论 -
Transact-SQL 计算工作日,不适用于oracle
declare @s as datetime,@e as datetime set @s='20050101'set @e='20051231' select days/7*5+days%7- case when 6 between wd and wd+days%7-1 then 1 else 0 end-case when 7 between wd and wd+days%7-1 then 1转载 2013-04-11 18:11:47 · 520 阅读 · 0 评论 -
自定义的三个Oracle日期函数 dayadd datediff datepart
函数一:CREATE OR REPLACE FUNCTION dayadd( p_Component varchar2, p_Number number, p_Date date)RETURN DATE IS/******************************转载 2013-04-12 15:13:28 · 1317 阅读 · 0 评论 -
Oracle中日期时间的操作比较和加减
1.日期时间间隔操作当前时间减去7分钟的时间select sysdate,sysdate - interval '7' MINUTE from dual当前时间减去7小时的时间select sysdate - interval '7' hour from dual当前时间减去7天的时间select sysdate - interval '7' day转载 2013-04-12 15:14:27 · 1090 阅读 · 0 评论 -
Oracle months_between()和add_months()函数
SELECT months_between('01-JAN-2012', '01-JAN-2013') months_between, add_months(to_date('12-APR-2013', 'DD-MON-YYYY'), 1) ad原创 2013-04-12 16:38:53 · 858 阅读 · 0 评论 -
dba_tables表中的num_rows与count(*)的值为何不同
dba_tables表中的一行为NUM_ROWS数值为何不与该表用SELECT COUNT(*)得到的行数一样?如在dba_tables表中有一行table_name为gang,其相应字段num_ROWS数值为39326,但我用 select count(*) from gang得到的行数为39328行,按理说后者应该是对的,为何具体表中的行数与系统表中保存相应表的行数不同步? 答:n转载 2013-04-11 18:55:08 · 7865 阅读 · 0 评论 -
oracle row_number() 函数的基本用法用法
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。示例: xlh row_num 1转载 2013-04-11 18:04:16 · 2077 阅读 · 1 评论 -
Oracler中的聚簇表
今天在搞概念的时候,突然相当以前对于这两者的理解比较模糊,就一并查了一下。感觉查到的资料中有两篇写得比较好,就转载了原文地址1:http://blog.sina.com.cn/s/blog_607b68cc0100f5jo.html内容如下:--聚簇索引: -- 在Oracle当中,聚簇不是索引的组织形式,而是表的组织形式。 --多用于表之间的连接字段。转载 2013-04-24 15:47:54 · 702 阅读 · 0 评论 -
花旗软件二面被虐
今天下午四点去花旗软件二面,被虐,三个人,刚进去的哥们挺好的,善良的兄弟。“我们的工作很枯燥,干嘛来我们这里,我还想转EBS呢。”最大的安慰了。带头大哥好屌,被严重鄙视。记录一下面试问题和重点:为什么换工作?为什么换公司?你的工作规划?近期计划?草,外派的,管我这个干嘛?oracle分析函数,A表:ID,NameB表:ID Name更新B表中的Name为A表原创 2013-09-06 23:28:09 · 3605 阅读 · 0 评论 -
主键约束和唯一性约束的区别
1.主键约束(PRIMARY KEY)1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL).4) 主健可作外健,唯一索引不可;2.唯一性约束(UNIQUE)1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表转载 2013-09-03 21:13:03 · 1684 阅读 · 0 评论 -
去重复
create table eric_employee (empid int ,deptid int ,salary decimal(10,2));insert into eric_employee values(1,10,5500.00);insert into eric_employee values(2,10,4500.00);insert into eric_employee原创 2013-09-03 21:28:30 · 518 阅读 · 0 评论 -
SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分转载 2013-11-09 01:10:00 · 543 阅读 · 0 评论 -
Oracle执行SQL语句的过程
当我们提交一条sql语句时,oracle会做哪些操作呢? Oracle会为每个用户进程分配一个服务器进程:service process(实际情况应该区分专用服务器和共享服务器),当service process接收到用户进程提交的sql语句时,服务器进程会对sql语句进行语法和词法分析。名词解释: 语法分析:语句本身正确性。 词法分析:对照数据字典中检查表,索引,视图和用户权转载 2013-04-10 11:39:45 · 1458 阅读 · 0 评论 -
Oracle sql语句执行顺序
sql语法的分析是从右到左 一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。5)选择优化器,不同的优化器一般产生不同的转载 2013-04-10 11:35:09 · 475 阅读 · 0 评论 -
利用rowid删除重复记录保留一行
CREATE TABLE beke01(NAME VARCHAR2(30), age NUMBER, address VARCHAR2(50)); INSERT INTO beke01VALUES ('beke', 25, 'sha原创 2013-04-09 14:07:26 · 1042 阅读 · 1 评论 -
Oracle查看数据库的常用SQL
1、查看表空间的名称及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;2、转载 2012-06-04 10:10:49 · 307 阅读 · 0 评论 -
Redhat5下安装ORACLE10.2.0.1时,图形界面出不来,报错:
Redhat5下安装ORACLE10.2.0.1时,图形界面出不来,报错:Exception :java.lang.UnsatisfiedLinkError:/u01/product/oracle/jdk/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory转载 2012-05-20 21:03:07 · 1168 阅读 · 0 评论 -
在虚拟机中安装oracle database时出现的错误
错误:Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-05-20_05-17-43AM. Please wait ...[oracle@localhost database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError:原创 2012-05-20 21:02:19 · 1419 阅读 · 0 评论 -
linux下安装oracle步骤
1,验证系统要求2,创建Oracle组和用户帐户 cd /usr/sbin groupadd oinstall groupadd dba useradd –m –g oinstall –G dba oracle id oracle passwd oracle3,创建存储Oracle软件和数据库文件的目录 mkdir原创 2012-05-21 23:42:26 · 562 阅读 · 0 评论 -
打开em
0,cd $ORACLE_HOME/network/admin; in linux1,vi listener.ora修改监听器; in linux2,lsnrctl status查看监听器状态; in linux3,emctl start dbconsole; in linux4,lsnrctl start; in liunx5,isqlplusctl start; in l原创 2012-06-16 22:04:01 · 387 阅读 · 0 评论 -
emca配置-Enterprise Manager configuration assistant
关键步骤:1. 在bash_profile配置参数 oracle_hostname2. 在操作系统/etc/hosts 文件中增加 虚礼IP3.in sqlplus: 运行以下脚本删除资料库配置信息 EXEC sysman.emd_maintenance.remove_em_dbms_jobs; DROP USER mgmt_view原创 2012-06-16 21:48:57 · 616 阅读 · 0 评论 -
启动EM步骤记录
1,cat /etc/hosts 查看DNS映射2,/sbin/ifconfig 查看ip3,cat /etc/sysconfig/network原创 2012-06-17 22:58:26 · 1509 阅读 · 0 评论 -
协议适配器错误
本来用conn / as sysdba或conn sys/apps as sysdba在cmd中连接虚拟机上的数据库,总是出现协议适配器错误的信息,用conn sys/apps@dv11 as sysdba连接就成功了。------------------------------------------------------------------------C:\Users\Adm原创 2012-06-18 01:19:07 · 1069 阅读 · 0 评论 -
在cmd里面tnsping不通的解决
在cmd里面tnsping虚拟机里面的数据库,老是pingbutong,终于找到问题了,是防火墙的问题,关闭linux的防火墙,就ping的通了。---------------------------------------------------------------------------未关闭防火墙时:C:\Users\Administrator>tnsping dv11T原创 2012-06-18 00:47:44 · 7355 阅读 · 1 评论 -
能用pl/sql developer访问虚拟机内的数据库了
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]"ORACLE_HOME"="C:\\app\\Administrator\\product\\11.2.0\\client_1""ORACLE_HOME_NAME"="OraClient11g_home1""ORACLE_GROUP_NA原创 2012-06-18 01:54:18 · 1647 阅读 · 0 评论 -
control file example
OPTIONS(SKIP=1)LOAD DATA REPLACEINTO TABLE INV.XXINV_ITEM_ATTACH_BEK_REGTRAILING NULLCOLS ( PROCESS_FLAG TERMINATED BY '|' "TRIM(:PROCESS_FLAG)", TRANSACTION_TYPE TER原创 2012-06-18 11:34:22 · 276 阅读 · 0 评论 -
ORA-00214 控制文件版本不一致恢复过程
该错误一般出现的原因:数据库服务器掉电等导致数据库异常中断。原因很简单:根据oracle db运行原理,数据库在运行期间,由于检查点发生等原因会不断的更新控制文件,同时数据库在关闭和重启过程中都会更新控制文件的内容,但是数据库服务器突 然的掉电,会导致当前的db信息无法适时更新到控制文件中,再次启动数据库后,当oracle检测控制文件和其它文件信息是否一致时,就出现了这个错误。 错误现象:转载 2012-06-25 00:28:56 · 26883 阅读 · 0 评论 -
初始化参数文件的恢复及备份
我没有配置SPFile,直接在spfiledv11.ora里做了修改,意欲增加几个control文件,没想到改了之后启动不了了,这里/u01/admin/dv11/pfile/init.ora.4212012235040竟然有个备份,与spfiledv11.ora中的配置一样,但注释很多,可以用来学习,我把spfiledv11.ora改成initdv11.ora传到/u01/oracle/原创 2012-06-24 22:58:03 · 667 阅读 · 0 评论 -
密码文件的恢复 || EM登录失败的解决
1,密码文件默认位置是:/u01/oracle/product/10.2.0/db_1/dbs/orapwSID如果密码文件被损坏,则无法远程登录,em无法登录,会出现,“username or password invalid”的错误。2,这时可以重新创建密码文件:cd /u01/oracle/product/10.2.0/db_1/dbsorapwd file=原创 2012-06-25 23:34:36 · 837 阅读 · 0 评论 -
基于oralce数据库的优化
基于oralce数据库的优化 1.为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享.因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同, ORACLE就能原创 2012-06-25 12:57:58 · 405 阅读 · 0 评论 -
oracle表分区详解
此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作.(1.) 表空间及分区表的概念表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指原创 2013-04-02 11:10:57 · 321 阅读 · 0 评论 -
分区索引
2.11.7 分区索引分区索引就是简单地把一个索引分成多个片段。通过把索引分成多个物理片段,可以访问更小的片段(也更快),并且可以把这些片段分别存放在不同的磁盘驱动器上(避免I/O竞争)。B树索引和位图索引都可以被分区,而哈希索引不可以被分区。可以有好几种分区方法:表分区而索引未分区;表未分区而索引分区;表和索引都分区。不管采用哪种方法,都必须使用基于成本的优化器。分区从多方面使改善性能转载 2014-04-20 17:34:33 · 693 阅读 · 0 评论