Oracle
ocean1010
智慧农业和市场监管行业15年以上,分享我们的精彩程序人生。(从PB到Java,从程序开发到项目管理,从产品管理到公司管理,一直在路上)。
展开
-
oracle over()函数技术详解
<br />1.测试表及记录如下所示:<br />SQL> select deptno,ename,sal<br /> 2 from emp<br /> 3 order by deptno;<br />DEPTNO ENAME SAL<br />---------- ---------- ----------<br /> 10 CLARK 2450<br /> KING 5000<br />转载 2010-10-07 10:45:00 · 517 阅读 · 0 评论 -
oracle索引
一,oracle的索引陷阱一个表中有几百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这主要可能是oracle的索引限制造成的。 oracle的索引有一些索引限制,在这些索引限制发生的情况下,即使已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比不加索引有所提高,反而可能由于数据库维护索引的系统开销造成性能更差。 下面是一些常见的索引限制问题。1、使用不等于操作符(, !=)下面这种情况,即使在列dept_id有一个索引,查询语句仍然执行一次全表扫描 select * from转载 2010-10-16 21:19:00 · 746 阅读 · 0 评论 -
Oracle SQL性能优化技巧大总结
<br /> (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): <br /> ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. oracle首先,扫描第一个表(FROM子句中最后的那个表)转载 2010-10-17 23:54:00 · 11208 阅读 · 1 评论 -
plsql优化器
<br />Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。<br />相信你一定会用Pl/sql Developer、Toad等工具去看一个语句的执行计划,不过你可能对Rule、Choose、First rows、All rows这几项有疑问,因为我当初也是这样的,那时我也疑惑为什么选了以上的不同的转载 2010-10-16 21:40:00 · 8908 阅读 · 0 评论 -
如何提高应用程序性能?
做了这么多Web应用程序,述说一下我们是怎样才能提高应用程序性能的,期待你的补充。1. 应用服务器方面:Ø 利用应用服务器的集群功能。Ø 相关参数配置Ø F52. 数据库方面:Ø Oracle数据库:集群Ø Sql server :生产库和查询库分离,相关表常驻内存Ø 索引Ø 分区表3. 程序优化:Ø 减少数据库的访问Ø 一些统计及查询建立单独的表结构Ø 优化sqlØ 建立相关字段索引Ø 减小程序中的相关图片大小Ø 去掉程序中没有js原创 2010-12-10 16:00:00 · 756 阅读 · 0 评论 -
关于空字符串
<br />不同数据库的空字符串处理逻辑 <br />经历过不同数据库开发的人经常会对莫名其妙的空串处理逻辑搞的晕头转向。<br />本人在此对Oracle,MSSQL,Sybase三种数据库的空串处理逻辑所一点分析。<br />本文假设读者正在使用PL/SQL或者T-SQL。<br />1、ORACLE——PL/SQL<br />在PL/SQL中,空串与NULL被视为等价值。<br />以下是测试例子:<br />CREATE TABLE test_empty(name VARCHAR2(10) NOT转载 2011-01-13 11:09:00 · 1612 阅读 · 0 评论 -
ORACLE UPDATE 语句语法与性能分析的一点看法(转)
为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, --客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户类型 ... ) create unique index PK_customers on customers (cust转载 2011-03-08 20:51:00 · 516 阅读 · 0 评论 -
如何进行批量更新操作
<br />在进行大批量数据更新的时候,往往采用批量更新的方式,以下俺写了个例子,请大家参考一下:<br />--创建表<br />create table test1<br />(<br /> a varchar2(100),<br /> b varchar2(100)<br />); <br />create table test2<br />(<br /> a varchar2(100),<br /> b varchar2(100)<br />); <br />--插入语句 <br />de原创 2011-03-08 21:38:00 · 994 阅读 · 0 评论 -
Oracle with语句的用法
Oracle with语句是经常可以见到的语句,下面就为您详细介绍Oracle with语句的用法,如果您对Oracle with语句感兴趣的话,不妨一看。当查询中多次用到某一部分时,可以用Oracle with语句创建一个公共临时表。因为子查询在内存临时表中转载 2011-07-04 14:18:17 · 1230 阅读 · 0 评论 -
视图中with check option的作用
create view IS_student as select sno,sname,sage from student where sdept='IS' with check option; 加上了wi转载 2011-07-09 10:51:30 · 28862 阅读 · 5 评论 -
oracle 锁
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出转载 2010-10-07 00:11:00 · 621 阅读 · 0 评论 -
SQL+合并多个记录group_concat()、wmsys.wm_concat()
mysql> select * from tab1;+----+------+| id | c2 |+----+------+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 1 || 5 |转载 2011-10-13 13:49:07 · 2722 阅读 · 0 评论 -
Oracle10g中全文索引自动同步
Oracle10g中context类型的全文索引也可以自动同步了。10g中新引入了2种同步的方式,现在有3种ctx_ddl.sync_indexsync(on commit)sync( every …) in parameter setting while creating indexsync(on commit) 是采用的子事务autonomous transacti转载 2012-05-17 10:14:59 · 1898 阅读 · 0 评论 -
oracle10g全文索引
oracle10g全文索引 --------------------------------------------------------------以下是oracle10g建立全文索引的步骤,来源记不清了.--------------------------------------------------------------- 一、验证是否有ctxsys用户和ctxapp角转载 2010-10-04 14:58:00 · 2098 阅读 · 0 评论 -
oracle merge
oracle merge 语法:merge [hint] into [schema .] table [t_alias]using [schema .] { table | view | subquery } [t_alias]on ( condition )when matched then merge_update_clausewhen not matched th转载 2012-06-27 16:25:56 · 620 阅读 · 0 评论 -
事务并发、事务隔离级别
并发问题可归纳为以下几类: A.丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该行数据的更新操作,然后回滚,则两次更新操作都丢失了)。B.脏读:一个事务读到另一个事务未提交的更新数据(A和B事务并发执行,B事务执行更新后,A事务查询B事务没有提交的数据,B事务回滚,则A事务得到的数据不原创 2011-06-16 16:04:00 · 28673 阅读 · 1 评论 -
OLTP和OLAP
联机事务处理(OLTP)和联机分析处理(OLAP)的不同,主要通过以下五点区分开来。 用户和系统的面向性: OLTP是面向顾客的,用于事务和查询处理 OLAP是面向市场的,用于数据分析 数据内容: OLTP系统管理当前数据. OLAP系统管理大量历史数据,提供汇总和聚集机制. 数据库设计: OLTP采用实体-联系ER模型和面向应用的数据库设计. OLAP采用星型转载 2014-01-22 08:46:37 · 680 阅读 · 0 评论 -
oracle中Like与Instr的性能比较
<br />t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果:<br />SQL> set timing on<br />SQL> select count(*) from t where instr(title,’手册’)>0;<br />COUNT(*)<br />———-<br />65881<br />Elapsed: 00:00:11.04<br /转载 2010-10-11 23:55:00 · 2286 阅读 · 1 评论 -
oracle将汉字转为全拼或返回拼音首字母sql
create or replace type spell_code as object(spell varchar2(10),code number);create or replace type t_spellcode is table of spell_code;--返回拼音与代码的对应关系create or replace function f_getSpellcode return t_spellcode PipelinedisBegin PIPE Row(spell_code('a', -203转载 2010-10-11 23:38:00 · 7689 阅读 · 1 评论 -
什么是数据库名、实例名、数据库域名、全局数据库名、服务名?
<br />一、数据库名<br />什么是数据库名?<br />数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下:<br />DB_NAME=myorcl<br />...<br />在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制形式存储转载 2010-10-07 14:38:00 · 3681 阅读 · 0 评论 -
oracle中的三个配置文件:listener.ora、sqlnet.ora、tnsnames.ora
<br /> #-----------------------<br /> sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串,<br /><br /> 例如我们客户端输入<br /><br /> sqlplus sys/oracle@orcl<br /><br /> 假如我的sqlnet.ora是下面这个样子<br /><br /> SQLNET.AUTHENTICATION_SERVICES转载 2010-10-08 10:42:00 · 1402 阅读 · 0 评论 -
Oracle的left outer join查询(转)
<br />在偶然一次执行Oracle 9i的left outer join查询时,发现了一些匪夷所思的问题,在此贴出来和大家讨论一下。<br />先创建一些表和记录来模拟当时的情况:<br />create table temp_test1<br />(<br /> a number(10)<br />);<br />INSERT INTO temp_test1 VALUES(1);<br />INSERT INTO temp_test1 VALUES(2);<br />INSERT INTO转载 2010-10-09 17:38:00 · 5933 阅读 · 0 评论 -
oracle中得到一段时间内天,月,周列表
--周列表 select ww, '第'|| ROWNUM || '周' from (select distinct (to_char(dt, 'yyiw')) ww from ( select (to_date('2005-01-01', 'yyyy-mm-dd') + rownum - 1) dt from dual connect by rownum to_date('2005-01-01', 'yyyy-mm-dd转载 2010-10-09 17:49:00 · 8835 阅读 · 0 评论 -
数据库并发控制的三个问题
现在主流的数据库管理系统中,都支持多个事务同时执行,这样提高了数据库管理系统的运行效率。试想如果只允许一个事务运行,而这个事务又需要很长的时间,那么其他的用户必须一直等待该事务结束,效率何其低下。执行不同的事务虽然可以提高性能,但是有可能会破坏数据的完整性,所以我们必须在性能和数据完整性之间进行权衡。那么什么是并发控制呢?并发控制是数据库管理系统协调多个运行事务的行为。首先了解一下,并发控制中经常遇到的三个问题。 1.脏读 我们通过一个products表来解释一下什么是脏读,该products表有一列qua转载 2010-10-07 00:02:00 · 5739 阅读 · 0 评论 -
oracle取表结构及其注释的SQL
--如下sql:select a.table_name, a.column_name, a.comments, 'comment on column ' || a.table_name||'.'||a.column_name || ' is ' || '''' || a.comments || ''';' sql_ from dba_col_comments a where a.owner = 'oracle用户名' an原创 2010-10-07 10:29:00 · 594 阅读 · 0 评论 -
oracle索引的5种使用模式
<br />索引的使用对数据库的性能有巨大的影响。 <br />共有五类不同的使用模式。 <br />1。INDEX UNIQUE SCAN 效率最高,主键或唯一索引 <br />2。INDEX FULL SCAN 有顺序的输出,不能并行读索引 <br />3。INDEX FAST FULL SCAN 读的最块,可以并行访问索引,但输出不按顺序 <br />4。INDEX RANGE SCAN 给定的区间查询 <br />5。INDEX SKIP SCAN 联合索引,转载 2010-10-08 11:25:00 · 719 阅读 · 0 评论 -
oracle中表的左外连接,右外连接,全外连接
<br />--建立测试表<br />create table employees(<br />last_name varchar2(20),<br />department_id number(6)<br />)<br />/<br />insert into employees(last_name,department_id)<br />values('eygle',1);<br />insert into employees(last_name,department_id)<br />values('转载 2010-10-09 17:45:00 · 855 阅读 · 0 评论 -
oracle job 知识
新建job时,其中: What ——作业执行时将要调用的存储过程; Next date ——下一次作业执行时间; Interval ——作业执行时间间隔,这个参数涉及到Next date的值,Next是按照Interval计算出来的。 Interval几种常用的写法: 1:每分钟执行 Interval => TRUNC(sysdate,'mi') + 1/ (24*60) 或 Interval => sysdate+1/1440 2:每天定时执行 例如:每天的凌晨1点执行 Interval => TRUNC转载 2010-10-06 22:58:00 · 615 阅读 · 0 评论 -
如何启动或关闭数据库的归档(ARCHIVELOG)模式
<br />Oracle数据库可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog)<br />归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,<br />只有归档模式没有相应的备份策略只会带来麻烦。本文简单介绍如何启用和关闭数据库的归档模式。 <br />1.shutdown normal或shutdown immediate关闭数据库<br />[oracle@jumper oracle]$ sql转载 2010-10-08 11:18:00 · 589 阅读 · 0 评论 -
创建物化视图
<br />/*<br />下面是关于创建物化视图的小例子,首先建了两个表(数据自已填充吧),<br />接下来就是创建两个物化视图.<br />*/<br />-- Create table<br />create table TEST_M1<br />(<br /> ID VARCHAR2(50) not null,<br /> NAME VARCHAR2(50)<br />)<br />tablespace GS12315_TBS<br /> pctfree 10<br /> initra原创 2010-10-06 23:28:00 · 710 阅读 · 0 评论 -
oracle中connetion和session的区别
<br />1.连接(connection)是一个物理的概念,它指的是一个通过网络建立的客户端和专有服务器(Dedicated Server)或调度器(Shared Server)的一个网络连接。<br />2.会话(session)是一个逻辑的概念,它是存在于实例中。<br />一个连接可以拥有多个会话也可以没有会话,同一个连接上的不同会话之间不会相互影响。但同一时刻一个连接对应于一个会话.<br />两个会话之间的影响,体现在锁和锁存,即对相同资源的操作(对象定义或数据块)或请求(CPU/内存),它们的转载 2010-10-09 16:59:00 · 817 阅读 · 0 评论 -
oracle函数索引
<br />如何创建oracle函数索引<br />Oracle8i的很重要的一个新特性就是增加了function-based index这种索引类型(后面简称为FBI)。<br />有了这个特性后,Oracle DBA就可以在索引中使用函数或者表达式了。这些函数可以使Oracle自己的函数,<br />也可以使用户自己的PL/SQL函数等。 <br />DBA在SQL语句调优的过程中遇到的一个很常见的问题就是,如何优化那些在WHERE子句中使用了函数的语句。<br />因为在以前,在WHERE子句中使用函转载 2010-10-09 21:26:00 · 581 阅读 · 0 评论 -
oracle中的rownum
<br />对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。<br /> 举例说明:<br />例如表:student(学生)表,表结构为:<br />ID char(6) --学号<br />name VARCHAR2(10) --姓名 <br />create table student (ID char(6), nam转载 2010-10-10 18:57:00 · 521 阅读 · 0 评论 -
oracle中的exists和in
有时候会将一列和一系列值相比较。最简单的办法就是在 where 子句中使用子查询。在where子句中可以使用两种格式的子查询。 第一种格式是使用IN操作符: ... where column in(select * from ... where ...); 第二种格式是使用EXIST操作符: ... where exists (select 'X' from ...where ...); 我相信绝大多数人会使用第一种格式,因为它比较容易编写,而实际上第二种格式要远比第一种格式的效率高。在 Ora转载 2010-10-11 23:32:00 · 1080 阅读 · 0 评论 -
Oracle文本查询
-----------------------------------------------------------------------------------文本查询分类查询文本不同于查询数据,因为有同义词、近义词和反义词。你可能希望搜索互相接近的词或搜索相关联的词。如果仅使用标准的关系操作符,要进行这些查询是非常困难的。通过SQL进行扩充,使其包含文本索引,则ORACLE TEXT允许用户就文本提出非常复杂的问题。文本索引主要有两种CONTEXT和CTXCAT用如下方式建立索引CREATE IND转载 2010-10-10 22:08:00 · 3028 阅读 · 0 评论 -
Oracle Instant Client(即时客户端) 安装与配置
一、下载下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html这是Oracle Instant Client的下载首页,有很多种版本可供下载。但要注意第三方工具如:PL/SQL Developer和Toad的版本,32位的要对应32位的OracleIn转载 2016-08-28 11:09:37 · 1345 阅读 · 0 评论