search
HomeDatabaseMysql TutorialOracle索引技术之如何建立最佳索引

Oracle索引技术之如何建立最佳索引

Jun 07, 2016 pm 05:59 PM
oraclecreatehowEstablishtechnologyoptimalindex

1、明确地创建索引 create index index_name on table_name(field_name) tablespace tablespace_name pctfree 5 initrans 2 maxtrans 255 - storage ( minextents 1 maxextents 16382 pctincrease 0 ); 2、创建基于函数的索引 常用与UPPER、LOWER、TO_CHAR(da

1、明确地创建索引

create index index_name on table_name(field_name)

tablespace tablespace_name

pctfree 5

initrans 2

maxtrans 255

-

storage

(

minextents 1

maxextents 16382

pctincrease 0

);



2、创建基于函数的索引

常用与UPPER、LOWER、TO_CHAR(date)等函数分类上,例:

create index idx_func on emp(UPPER(ename)) tablespace tablespace_name;

3、创建位图索引

对基数较小,且基数相对稳定的列建立索引时,首先应该考虑位图索引,例:

create bitmap index idx_bitm on class (classno) tablespace tablespace_name;

4、明确地创建唯一索引

可以用create unique index语句来创建唯一索引,例:

create unique index dept_unique_idx on dept(dept_no) tablespace idx_1;

5、创建与约束相关的索引

可以用using index字句,为与unique和primary key约束相关的索引,例:

alter table table_name

add constraint PK_primary_keyname primary key(field_name)

using index tablespace tablespace_name;

如何创建局部区索引?

1)基础表必须是分区表

2)分区数量与基础表相同

3)每个索引分区的子分区数量与相应的基础表分区相同

4)基础表的自分区中的行的索引项,被存储在该索引的相应的自分区中,例如

create index TG_CDR04_SERV_ID_IDX on TG_CDR04(SERV_ID)

Pctfree 5

Tablespace TBS_AK01_IDX

Storage(

MaxExtents 32768

PctIncrease 0

FreeLists 1

FreeList Groups 1

)

local

/



如何创建范围分区的全局索引?

基础表可以是全局表和分区表

create index idx_start_date on tg_cdr01(start_date)

global partition by range(start_date)

(partition p01_idx vlaues less than ('0106')

partition p01_idx vlaues less than ('0111')

...

partition p01_idx vlaues less than ('0401'))

/

如何重建现存的索引?

重建现存的索引的当前时刻不会影响查询

重建索引可以删除额外的数据块

提高索引查询效率

alter index idx_name rebuild nologging;

对于分区索引

alter index idx_name rebuild partition partition_name nologging;

删除索引的原因?

1)不再需要的索引

2)索引没有针对其相关的表所发布的查询提供所期望的性能改善

3)应用没有用该索引来查询数据

4)该索引无效,必须在重建之前删除该索引

5)该索引已经变的太碎了,必须在重建之前删除该索引

语句:

drop index idx_name;

drop index idx_name partition partition_name;

建立索引的代价?

基础表维护时,系统要同时维护索引,不合理的索引将严重影响系统资源,

主要表现在CPU和I/O上。

插入、更新、删除数据产生大量db file sequential read锁等待。
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
What are stored procedures in MySQL?What are stored procedures in MySQL?May 01, 2025 am 12:27 AM

Stored procedures are precompiled SQL statements in MySQL for improving performance and simplifying complex operations. 1. Improve performance: After the first compilation, subsequent calls do not need to be recompiled. 2. Improve security: Restrict data table access through permission control. 3. Simplify complex operations: combine multiple SQL statements to simplify application layer logic.

How does query caching work in MySQL?How does query caching work in MySQL?May 01, 2025 am 12:26 AM

The working principle of MySQL query cache is to store the results of SELECT query, and when the same query is executed again, the cached results are directly returned. 1) Query cache improves database reading performance and finds cached results through hash values. 2) Simple configuration, set query_cache_type and query_cache_size in MySQL configuration file. 3) Use the SQL_NO_CACHE keyword to disable the cache of specific queries. 4) In high-frequency update environments, query cache may cause performance bottlenecks and needs to be optimized for use through monitoring and adjustment of parameters.

What are the advantages of using MySQL over other relational databases?What are the advantages of using MySQL over other relational databases?May 01, 2025 am 12:18 AM

The reasons why MySQL is widely used in various projects include: 1. High performance and scalability, supporting multiple storage engines; 2. Easy to use and maintain, simple configuration and rich tools; 3. Rich ecosystem, attracting a large number of community and third-party tool support; 4. Cross-platform support, suitable for multiple operating systems.

How do you handle database upgrades in MySQL?How do you handle database upgrades in MySQL?Apr 30, 2025 am 12:28 AM

The steps for upgrading MySQL database include: 1. Backup the database, 2. Stop the current MySQL service, 3. Install the new version of MySQL, 4. Start the new version of MySQL service, 5. Recover the database. Compatibility issues are required during the upgrade process, and advanced tools such as PerconaToolkit can be used for testing and optimization.

What are the different backup strategies you can use for MySQL?What are the different backup strategies you can use for MySQL?Apr 30, 2025 am 12:28 AM

MySQL backup policies include logical backup, physical backup, incremental backup, replication-based backup, and cloud backup. 1. Logical backup uses mysqldump to export database structure and data, which is suitable for small databases and version migrations. 2. Physical backups are fast and comprehensive by copying data files, but require database consistency. 3. Incremental backup uses binary logging to record changes, which is suitable for large databases. 4. Replication-based backup reduces the impact on the production system by backing up from the server. 5. Cloud backups such as AmazonRDS provide automation solutions, but costs and control need to be considered. When selecting a policy, database size, downtime tolerance, recovery time, and recovery point goals should be considered.

What is MySQL clustering?What is MySQL clustering?Apr 30, 2025 am 12:28 AM

MySQLclusteringenhancesdatabaserobustnessandscalabilitybydistributingdataacrossmultiplenodes.ItusestheNDBenginefordatareplicationandfaulttolerance,ensuringhighavailability.Setupinvolvesconfiguringmanagement,data,andSQLnodes,withcarefulmonitoringandpe

How do you optimize database schema design for performance in MySQL?How do you optimize database schema design for performance in MySQL?Apr 30, 2025 am 12:27 AM

Optimizing database schema design in MySQL can improve performance through the following steps: 1. Index optimization: Create indexes on common query columns, balancing the overhead of query and inserting updates. 2. Table structure optimization: Reduce data redundancy through normalization or anti-normalization and improve access efficiency. 3. Data type selection: Use appropriate data types, such as INT instead of VARCHAR, to reduce storage space. 4. Partitioning and sub-table: For large data volumes, use partitioning and sub-table to disperse data to improve query and maintenance efficiency.

How can you optimize MySQL performance?How can you optimize MySQL performance?Apr 30, 2025 am 12:26 AM

TooptimizeMySQLperformance,followthesesteps:1)Implementproperindexingtospeedupqueries,2)UseEXPLAINtoanalyzeandoptimizequeryperformance,3)Adjustserverconfigurationsettingslikeinnodb_buffer_pool_sizeandmax_connections,4)Usepartitioningforlargetablestoi

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools