Rumah pangkalan data tutorial mysql Oracle索引与表分析几种方法_MySQL

Oracle索引与表分析几种方法_MySQL

Jun 01, 2016 pm 01:28 PM
oracle

bitsCN.com

Oracle索引与表分析几种方法

 

分析表与索引有几种方法,现在列举出来参考下。

 

1.分析表与索引(analyze 不会重建索引)

 

analyze table tablename compute statistics 

等同于 analyze table tablename compute statistics for table for all indexes for all columns

 

for table 的统计信息存在于视图:user_tables 、all_tables、dba_tables

 

for all indexes 的统计信息存在于视图: user_indexes 、all_indexes、dba_indexes

 

for all columns 的统计信息存在于视图:user_tab_columns、all_tab_columns、dba_tab_columns

 

注:分析表与索引见 AnalyzeAllTable存储过程

2、一般来讲可以采用以下三种方式来手工分析索引。

analyze index idx_t validate structure:

analyze index idx_t compute statistics:

analyze index idx_t estimate statistics sample 10 percent

 

1)analyze index idx_t validate structure:

这段分析语句是用来分析索引的block中是否有坏块儿,那么根据分析我们可以得到索引的结构数据,这些数据会保留到

index_stats中,来判断这个索引是否需要rebuild. 需要注意的是这样的分析是不会收集索引的统计信息的。

 

2)validate structure有二种模式: online, offline, 一般来讲默认的方式是offline。

当以offline的模式analyze索引时,会对table加一个表级共享锁,对目前table的一些实时DMl操作会产生一定的影响。

而以online模式分析时候,则不会加任何lock,但在index_stats中是看不到任何信息的。

 

3)analyze index idx_t compute statistics:

用来统计索引的统计信息(全分析),主要为CBO服务。

 

4)analyze index idx_t estimate statistics sample 10 percent

主要是用来指定比例进行抽样分析,也是为CBO服务. 例中是抽样10%

 

3.重建索引

alter index index_name rebuild tablespace tablespace_name 

alter index index_name rebuild tablespace tablespace_name 加入表空间名,会将指定的索引移动到指定的表空间当中。

 

注:

analyze 操作只是统计信息,并将统计信息存放起来供日后分析SQL使用,不进行重建之类的具体实施性操作,因此要重建索引的话

还是要用 alter index index_name rebuild

 

4、其他的统计方法

 

1)DBMS_STATS:这个当然是最强大的分析包了

--创建统计信息历史保留表

exec dbms_stats.create_stat_table(ownname => 'scott',stattab => 'stat_table');

 

--导出整个scheme的统计信息

exec dbms_stats.export_schema_stats(ownname => 'scott',stattab => 'stat_table');

 

--分析scheme

Exec dbms_stats.gather_schema_stats(ownname => 'test',options => 'GATHER AUTO',

                                       estimate_percent => dbms_stats.auto_sample_size,

                                       method_opt => 'for all indexed columns',

                                       degree => 6 );

 

--分析表

exec dbms_stats.gather_table_stats(ownname => 'TEST',tabname => 'sm_user',estimate_percent => 10,method_opt=> 'for all indexed columns') ;

 

--分析索引

exec dbms_stats.gather_index_stats(ownname => 'TEST',indname => 'pk_user_index',estimate_percent => '10',degree => '4') ;

 

--如果发现执行计划走错,删除表的统计信息

exec dbms_stats.delete_table_stats(ownname => 'TEST',tabname => 'SM_USER') ;

 

--导入表的历史统计信息

exec dbms_stats.import_table_stats(ownname => 'TEST',tabname => 'SM_USER',stattab => 'stat_table') ;

 

--如果进行分析后,大部分表的执行计划都走错,需要导回整个scheme的统计信息

exec dbms_stats.import_schema_stats(ownname => 'TEST',stattab => 'SM_USER');

 

--导入索引的统计信息

exec dbms_stats.import_index_stats(ownname => 'TEST',indname => 'PK_USER_INDEX',stattab => 'stat_table')

 

 

analyze和dbms_stats不同的地方:

analyze是同时更新表和索引的统计信息,而dbms_stats会先更新表的统计信息,然后再更新索引的统计信息,

这里就有一个问题,就是当表的统计信息更新后,而索引的统计信息没有被更新,这时候cbo就有可能选择错误的plan

 

2)DBMS_UTILITY.ANALYZE_SCHEMA:可直接分析SCHEMA中所有对象

   如:EXEC DBMS_UTILITY.ANALYZE_SCHEMA ('LTTFM','COMPUTE');

 

3)DBMS_DDL.ANALYZE_OBJECT:收集对象的的统计信息

bitsCN.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1273
29
Tutorial C#
1253
24
Apa yang perlu dilakukan sekiranya oracle tidak dapat dibuka Apa yang perlu dilakukan sekiranya oracle tidak dapat dibuka Apr 11, 2025 pm 10:06 PM

Penyelesaian kepada Oracle tidak boleh dibuka termasuk: 1. Mulakan perkhidmatan pangkalan data; 2. Mulakan pendengar; 3. Periksa konflik pelabuhan; 4. Menetapkan pembolehubah persekitaran dengan betul; 5. Pastikan perisian firewall atau antivirus tidak menghalang sambungan; 6. Periksa sama ada pelayan ditutup; 7. Gunakan RMAN untuk memulihkan fail rasuah; 8. Periksa sama ada nama perkhidmatan TNS betul; 9. Periksa sambungan rangkaian; 10. Pasang semula perisian Oracle.

Cara menyelesaikan masalah penutup kursor oracle Cara menyelesaikan masalah penutup kursor oracle Apr 11, 2025 pm 10:18 PM

Kaedah untuk menyelesaikan masalah penutupan kursor Oracle termasuk: secara eksplisit menutup kursor menggunakan pernyataan Tutup. Mengisytiharkan kursor dalam klausa kemas kini supaya ia ditutup secara automatik selepas skop berakhir. Mengisytiharkan kursor dalam klausa menggunakan supaya ia secara automatik ditutup apabila pembolehubah PL/SQL yang berkaitan ditutup. Gunakan pengendalian pengecualian untuk memastikan kursor ditutup dalam keadaan pengecualian. Gunakan kolam sambungan untuk menutup kursor secara automatik. Lumpuhkan penyerahan automatik dan penangguhan kursor kelewatan.

Cara membuat kursor di Oracle Loop Cara membuat kursor di Oracle Loop Apr 12, 2025 am 06:18 AM

Di Oracle, gelung gelung boleh membuat kursor secara dinamik. Langkah -langkahnya ialah: 1. Tentukan jenis kursor; 2. Buat gelung; 3. Buat kursor secara dinamik; 4. Melaksanakan kursor; 5. Tutup kursor. Contoh: Kursor boleh dibuat kitaran demi litar untuk memaparkan nama dan gaji 10 pekerja teratas.

Cara Mengeksport Oracle View Cara Mengeksport Oracle View Apr 12, 2025 am 06:15 AM

Pandangan Oracle boleh dieksport melalui utiliti EXP: log masuk ke pangkalan data Oracle. Mulakan utiliti EXP, menentukan nama paparan dan direktori eksport. Masukkan parameter eksport, termasuk mod sasaran, format fail, dan ruang meja. Mula mengeksport. Sahkan eksport menggunakan utiliti IMPDP.

Apa yang perlu dilakukan sekiranya log oracle penuh Apa yang perlu dilakukan sekiranya log oracle penuh Apr 12, 2025 am 06:09 AM

Apabila fail log Oracle penuh, penyelesaian berikut boleh diterima pakai: 1) fail log lama bersih; 2) meningkatkan saiz fail log; 3) meningkatkan kumpulan fail log; 4) menyediakan pengurusan log automatik; 5) mengukuhkan pangkalan data. Sebelum melaksanakan sebarang penyelesaian, adalah disyorkan untuk membuat sandaran pangkalan data untuk mengelakkan kehilangan data.

Peranan Oracle dalam dunia perniagaan Peranan Oracle dalam dunia perniagaan Apr 23, 2025 am 12:01 AM

Oracle bukan sahaja syarikat pangkalan data, tetapi juga pemimpin dalam pengkomputeran awan dan sistem ERP. 1. Oracle menyediakan penyelesaian yang komprehensif dari pangkalan data ke perkhidmatan awan dan sistem ERP. 2. Oraclecloud mencabar AWS dan Azure, menyediakan perkhidmatan IaaS, PaaS dan SaaS. 3. Sistem ERP Oracle seperti E-BusinessSuite dan FusionApplications membantu perusahaan mengoptimumkan operasi.

Langkah -langkah apa yang diperlukan untuk mengkonfigurasi CentOS dalam HDFS Langkah -langkah apa yang diperlukan untuk mengkonfigurasi CentOS dalam HDFS Apr 14, 2025 pm 06:42 PM

Membina Sistem Fail Teragih Hadoop (HDFS) pada sistem CentOS memerlukan pelbagai langkah. Artikel ini menyediakan panduan konfigurasi ringkas. 1. Sediakan untuk memasang JDK pada peringkat awal: Pasang JavadevelopmentKit (JDK) pada semua nod, dan versi mesti bersesuaian dengan Hadoop. Pakej pemasangan boleh dimuat turun dari laman web rasmi Oracle. Konfigurasi Pembolehubah Alam Sekitar: Edit /etc /Fail Profil, tetapkan pembolehubah persekitaran Java dan Hadoop, supaya sistem dapat mencari laluan pemasangan JDK dan Hadoop. 2. Konfigurasi Keselamatan: Log masuk tanpa kata laluan SSH untuk menjana kunci SSH: Gunakan perintah ssh-keygen pada setiap nod

Cara Menghentikan Pangkalan Data Oracle Cara Menghentikan Pangkalan Data Oracle Apr 12, 2025 am 06:12 AM

Untuk menghentikan pangkalan data Oracle, lakukan langkah -langkah berikut: 1. Sambungkan ke pangkalan data; 2. Shutdown segera; 3. Shutdown membatalkan sepenuhnya.

See all articles