代码改变世界

随笔分类 -  Oracle性能诊断

Oracle:Materialized Views

2011-06-17 13:41 by Tracy., 1423 阅读, 收藏, 编辑
摘要: Types of Materialized Views The SELECT clause in the materialized view creation statement defines the data that the materialized view is to contain. There are only a few restrictions on what may be s... 阅读全文

PL/SQL Enhancements in Oracle Database 10g

2011-06-09 14:18 by Tracy., 362 阅读, 收藏, 编辑
摘要: Oracle 10g includes many PL/SQL enhancements including: PL/SQL Native Compilation FORALL Support for Non-Consecutive Indexes (Sparse Collections) New IEEE Floating-Point Types Improved Overloading Wi... 阅读全文

使用Oracle在线重定义包 DBMS_REDEFINITION 在不停业务的情况下增加或修改字段

2011-06-09 14:02 by Tracy., 990 阅读, 收藏, 编辑
摘要: --原表的定义语句, 做在线重定义之前, 记得先把原表定义语句先取出来备用, 可以从toad里取得. ALTER TABLE U_TEST.CARD_TEST DROP PRIMARY KEY CASCADE; DROP TABLE U_TEST.CARD_TEST CASCADE CONSTRAINTS; CREATE TABLE U_TEST.CARD_TEST ( CARD_NO VAR... 阅读全文

Oracle 11g: DBMS_PARALLEL_EXECUTE

2011-06-09 13:49 by Tracy., 1387 阅读, 收藏, 编辑
摘要: DBMS_PARALLEL_EXECUTE The DBMS_PARALLEL_EXECUTE package allows a workload associated with a base table to be broken down into smaller chunks which can be run in parallel. This process involves several... 阅读全文

Commit Enhancements in Oracle 10g Database Release 2

2011-06-09 13:28 by Tracy., 238 阅读, 收藏, 编辑
摘要: Commit Enhancements in Oracle 10g Database Release 2 In Oracle 10g Release 2 the COMMIT command has been enhanced with the WRITE clause to give a degree of control over the way redo information is wri... 阅读全文

Partitioning Enhancements in Oracle Database 11g Release 1

2011-06-09 13:12 by Tracy., 348 阅读, 收藏, 编辑
摘要: Partitioning Enhancements in Oracle Database 11g Release 1 This article uses simple examples to describe the partitioning enhancements in Oracle 11g Release 1. Extended Composite Partitioning Interval... 阅读全文

Online Table Redefinition Enhancements in Oracle Database 11g Release 1

2011-06-09 13:00 by Tracy., 409 阅读, 收藏, 编辑
摘要: Online Table Redefinition Enhancements in Oracle Database 11g Release 1 By default, online table redefinitions no longer invalidate dependent objects (PL/SQL, views, synonyms etc.), provided the redef... 阅读全文

ITPUB:按道理应该走的局部分区索引

2011-06-02 13:48 by Tracy., 305 阅读, 收藏, 编辑
摘要: 从400万行记录的1个分区中进行查询10行记录,为什么不走局部索引? 分区表,从400万行记录中取出10行记录,为什么没有走索引? 目前情况: windows2003系统, 11gR1版本。 1, 设计rece为分区表,其中的gpsdate上建立了list分区, '20100501'对应的分区名是“P_20100501”,这个分区的记录约为400万行。 数据情况如下: SQL> select co... 阅读全文

Oracle 高水位(HWM)

2011-06-02 09:16 by Tracy., 959 阅读, 收藏, 编辑
摘要: 1. 准备知识:ORACLE的逻辑存储管理. ORACLE在逻辑存储上分4个粒度:表空间,段,区和块. 1.1 块:是粒度最小的存储单位,现在标准的块大小是8K,ORACLE每一次I/O操作也是按块来操作的,也就是说当ORACLE从数据文件读数据时,是读取多少个块,而不是多少行. 1.2 区:由一系列相邻的块而组成,这也是ORACLE空间分配的基本单位,举个例子来说,当我们创建一个表PM_USER... 阅读全文

关于分区表和分区索引

2011-05-31 14:01 by Tracy., 976 阅读, 收藏, 编辑
摘要: 关于分区表和分区索引(About Partitioned Tables and Indexes) 对于10gR2而言,基本上可以分成几类: v Range(范围)分区 v Hash(哈希)分区 v List(列表)分区 v 以及组合分区:Range-Hash,Range-List。 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区... 阅读全文

分区表和分区索引的创建案例

2011-05-31 13:48 by Tracy., 538 阅读, 收藏, 编辑
摘要: --帐号信息表 CREATE TABLE TB_U_ACCOUNT ( ACCOUNT_ID NUMBER(20), ACCOUNT_BALANCE_TOTAL NUMBER(13,2), ACCOUNT_BALANCE NUMBER(13,2), DAY_MONEY NUMBER(13,2), MONTH_MONEY NUMBER(13,2), ADD_DAY VARCHAR2(8), ADD_... 阅读全文

ITPUB:分区表,每次查询取出1%的记录,为什么没有走索引?

2011-05-31 10:39 by Tracy., 566 阅读, 收藏, 编辑
摘要: 分区表,每次查询取出1%的记录,为什么没有走索引? 目前情况: windows2003系统, 11gR1版本。 经常执行的是类似:select * from rece where gpsdate >= ... and gpsdate<=... and device_number=... ; 的查询,即:查询某个设备号的设备,在某些天内的记录。而rece表里共有3亿条记录。 所以, 1, 设计re... 阅读全文

ITPUB: Newkid的两个NULL与索引的小技巧

2011-05-28 21:45 by Tracy., 367 阅读, 收藏, 编辑
摘要: 1.既然NULL是可以进复合索引的,在我们需要对NULL进行索引时,就可以构造一个“伪复合索引”:CREATE INDEX my_index ON my_table(my_column,0);后面这个零就是加入的伪列。这样以后在有 my_column IS NULL 的条件就可以利用索引了(当然最终使用与否还得由CBO决定)。2.不想索引的行,即使不是NULL, 也可用函数把它剔除。假设有status_id列,里面有0:未处理,1:已处理 两种状态,我们关心的仅仅是0的行,处理完就会改成1. 这样表中0的行仅仅是少数,大部分是1的行,数据量多了BTREE索引的维护就有开销。这时可以建立这样的索 阅读全文

yangtingkun常数复合索引应用案例

2011-05-27 10:54 by Tracy., 485 阅读, 收藏, 编辑
摘要: 受楼下老大的NULL贴启发,讲两个NULL与索引的小技巧 1.既然NULL是可以进复合索引的,在我们需要对NULL进行索引时,就可以构造一个“伪复合索引”: CREATE INDEX my_index ON my_table(my_column,0); 后面这个零就是加入的伪列。这样以后在有 my_column IS NULL 的条件就可以利用索引了(当然最终使用与否还得由CBO决定)。 2.不... 阅读全文

ORACLE全文检索文件路径版

2011-05-26 11:33 by Tracy., 563 阅读, 收藏, 编辑
摘要: 一、创建示例表 CREATE TABLE T_FULLTEXT_DEMO( ID NUMBER NOT NULL, TITLE VARCHAR2(100) NULL, REMARK VARCHAR2(200) NULL, FILE_NAME VARCHAR2(200) NULL, CONSTRAINT T_FULLTEXT_DEMO_PK PRIMARY KEY ( ID )); 二、对... 阅读全文

Oracle统计信息的备份还原

2011-05-25 17:19 by Tracy., 483 阅读, 收藏, 编辑
摘要: As of Oracle Database 10g, whenever system statistics or object statistics are gathered through the package dbms_stats, instead of simply overwriting current statistics with the new statistics, the cu... 阅读全文

直方图有两种类别,等频直方图与等高直方图。

2011-05-25 15:01 by Tracy., 2732 阅读, 收藏, 编辑
摘要: 直方图有两种类别,等频直方图与等高直方图。 默认的,如果一个倾斜列上的唯一值超过了254个,那么ORACLE会对此列建立等高直方图,否则建立等频直方图。 通过如下方式,建立表TAB,更新字段B,让列B产生倾斜。并在B列上创建索引。 SQL> spool d:\hist.txt SQL> create table tab (a number, b number); 表已创建。 SQL> SQL> ... 阅读全文

Oracle 10g中的SQL跟踪新方法

2011-05-25 13:09 by Tracy., 614 阅读, 收藏, 编辑
摘要: Oracle 10g中的SQL跟踪新方法 1. 先确定需要跟踪的Session或者Client select * from v$session --会话级别 可以设置identifier方便查询跟踪文件 alter session set TRACEFILE_IDENTIFIER = 'something_here'; begin --当前自己的Session可以用: --EXECUTE DBM... 阅读全文

基于索引的SQL语句优化之降龙十八掌

2011-05-11 10:53 by Tracy., 268 阅读, 收藏, 编辑
摘要: 1 前言... 2 2 总纲... 2 3 降龙十八掌... 3 第一掌 避免对列的操作... 3 第二掌 避免不必要的类型转换... 4 第三掌 增加查询的范围限制... 4 第四掌 尽量去掉"IN"、"OR" 4 第五掌 尽量去掉 "<>" 5 第六掌 去掉Where子句中的IS NULL和IS NOT NULL. 5 第七掌 索引提高数据分布不均匀时查询效率... 5 第八掌 利用HINT强... 阅读全文

如何更好的使用Oracle全文索引

2010-10-20 11:33 by Tracy., 14891 阅读, 收藏, 编辑
摘要: 不使用Oracle text功能,也有很多方法可以在Oracle数据库中搜索文本.可以使用标准的INSTR函数和LIKE操作符实现。 有很多时候,使用instr和like是很理想的, 特别是搜索仅跨越很小的表的时候.然而通过这些文本定位的方法将导致全表扫描,对资源来说消耗比较昂贵,而且实现的搜索功能也非常有限,因此对海量的文本数据进行搜索时,建议使用oralce提供的全文检索功能 建立全文检索的... 阅读全文