14 Using Indexes and Clusters

do not build indexes unless necessary. 索引是非常占资源的
To maintain optimal performance, drop indexes that an application is not using. 不用的索引可以drop掉, 通过toad可以生成监控脚本, 监控一段时间内, 哪些脚本没有被使用 (ALTER INDEX MONITORING USAGE)
什么时候创建索引
Consider indexing keys that appear frequently in WHERE clauses.
Consider indexing keys that frequently join tables in SQL statements. For more information on optimizing joins.
Choose index keys that have high selectivity. The selectivity of an index is the percentage of rows in a table having the same value for the indexed key. An index‘s selectivity is optimal if few rows have the same value.‘
当然, 如果你的索引列上的值, 99%都一样, 那么恐怕就没有必要在这个列上建立索引了.
Do not use standard B-tree indexes on keys or expressions with few distinct values.
Do not index frequently modified columns.
Do not index keys that appear only in WHERE clauses with functions or operators.
要给外键建立索引 (大师有提过)
When choosing to index a key, consider whether the performance gain for queries is worth the performance loss for INSERTs, UPDATEs, and DELETEs and the use of the space required to store the index.

组合索引
CREATE INDEX comp_ind ON table1(x, y, z);
那么, 可以走索引的方式是: x, xy, and xyz combinations of columns are leading portions of the index

你想避免使用索引时: 比如, 你知道 full table scan 效率更高时:
Use the NO_INDEX hint to give the query optimizer maximum flexibility while disallowing the use of a certain index.
Use the FULL hint to instruct the optimizer to choose a full table scan instead of an index scan.
Use the INDEX or INDEX_COMBINE hints to instruct the optimizer to use one index or a set of listed indexes instead of another.

重建索引
Usually, ALTER INDEX ... REBUILD is faster than dropping and re-creating an index,

Function 索引
CREATE INDEX uppercase_idx ON employees (UPPER(last_name));
SELECT * FROM employees WHERE UPPER(last_name) = ‘MARKSON‘;

Partitioned Indexes
类似 partitioned table
Oracle Database supports both range and hash partitioned global indexes. In a range partitioned global index, each index partition contains values defined by a partition bound.
In a hash partitioned global index, each partition contains values determined by the Oracle Database hash function.

时间: 2024-10-04 11:23:06

14 Using Indexes and Clusters的相关文章

11.2.0.4手动升级到12.1.0.2

1.手动升级前工作(1).备份数据库(2).运行pre-upgrade information tool(如果是使用DBUA升级,会自动执行该脚本工具) $ cd /u01/app/oracle12/product/12.1.0/dbhome_1/rdbms/admin $ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 6 08:26:57 2015 Copyright (c) 1982, 2013

Wamp 安装与配置

1. WAMP 介绍 W指windows运行环境. A指Apache服务器. M指Mysql数据库等... P指PHP或Python服务端语言及环境. 2. 下载 Wamp 及 Visual C++ Redistributable (vcredist_x64/86.exe),wamp依赖于Visual C++ Redistributable环境. 3. 配置Apache 修改./wamp/bin/apache/conf/httpd.conf,修改ServerName. 4. 添加alias,方法

访问远程WAMP 下phpmyadmin

WAMP环境是一个很优秀的webservice集成环境,它集成的phpmyadmin也是一款非常优秀的数据库访问软件.wamp默认安装下,phpmyadmin工具只能本地用,在网站开发中,数据库都是在另外的服务器上,那么wamp下如何访问呢? 文章带来"如何访问远程wamp下的phpmyadmin?" wamp2.5(32bit)环境 集成环境版本(Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMyAdmin : 4.1.14 SqlBud

mac 10.9.4下配置apache

mac 10.9.x已经自带了apache,可按如下步骤开启: 1.启动 sudo apachectl start 启动后,访问 http://localhost/ 应该能看到"It works!"的初始页面,如果对初始页面的内容感到好奇,可以打开"/etc/apache2/httpd.conf",197行可以看到如下代码片段: 1 <Directory "/Library/WebServer/Documents"> 2 # 3 #

oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表空间(tablespace).段(segment).区(extent).块(block),这些都是oracle数据库在数据文件中组织数据的基本单元.现在我们来理解这些概念. 块是数据存储的物理单位,也是数据文件中最基础的单位,数据直接存储在块上.是oracle空间分配的最小单位.oracle中的块大

phpMyAdmin导入文件过大超出限制的解决

phpMyAdmin从计算机导入文件的限制为128M,当要导入的文件超过了这个限制的时候,就需要设置一下,有两个方法, 一 . 从网站服务器上传文件夹 ImportSQLFile/ 中选择.具体步骤: 2016-07-06在phpmyadmin文件夹下新建文件夹,文件夹名为ImportSQLFile: 将需要上传的sql文件放置到ImportSQLFile文件夹下: 打开phpMyadmin,选择需要导入的数据库名,选择从网站服务器上传文件夹 ImportSQLFile/ 中选择,选择要上传的s

PLSQL_性能优化系列08_Oracle Insert / Direct Insert性能优化

2014-09-25 BaoXinjian 一.Insert 性能影响 应用设计不合理导致的session之间的互锁(enqueue)是影响程序可扩展性最常见的原因.此外,一些共享资源的争用,也会导致性能下降. 本篇介绍两个由并发insert操作导致的等待事件(wait event),以及如何通过优化物理设计来进行改善. 普通Insert操作本身产生的是行锁,因此进程相互之间不会锁住(enqueue),但当很多进程insert同一张表时,会有资源上冲突. 以下是两个例子: 1. Buffer b

dubbo+zookeeper伪集群配置

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协调器或者控制器来管理物理分布的子进程.目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用.伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用.所以说zookeeper是分布式应用的协作服务. 二.zookeeper的工作原理 核心

訪问远程WAMP 下phpmyadmin

WAMP环境是一个非常优秀的webservice集成环境,它集成的phpmyadmin也是一款非常优秀的数据库訪问软件.wamp默认安装下,phpmyadmin工具仅仅能本地用,在站点开发中,数据库都是在另外的server上,那么wamp下怎样訪问呢? 文章带来"怎样訪问远程wamp下的phpmyadmin?" wamp2.5(32bit)环境 集成环境版本号(Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMyAdmin : 4.1.14