Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

cách tìm chỉ mục trên bảng trong oracle

Rất phổ biến là bạn muốn Tìm trạng thái chỉ mục và các cột được chỉ định cho bảng tiên tri
Và đôi khi bạn cũng muốn biết các cột được chỉ định cho các chỉ mục.
Các dạng xem sau sẽ hữu ích trong những trường hợp này và để tìm các chỉ mục trên một bảng trong oracle

dba_ind_columns : This is to used if login with user having DBA role
all_ind_columns : This is to used if login with user having normal role
user_ind_columns : This is to used if login with user having normal role

Cách kiểm tra chỉ mục trên bảng trong oracle

Chúng ta có thể sử dụng truy vấn dưới đây về cách kiểm tra cột chỉ mục trên bảng trong oracle và cách kiểm tra chỉ mục trên bảng trong oracle. Đây là truy vấn về cách tìm chỉ mục trên bảng trong oracle

set pagesize 50000 verify off echo off

col table_name head 'Table Name' format a20
col index_name head 'Index Name' format a25
col column_name head 'Column Name' format a30

break on table_name on index_name

select    table_name, index_name, column_name
from    all_ind_columns
where    table_name like upper('&Table_Name')
order by table_name, index_name, column_position
/

cách kiểm tra trạng thái chỉ mục trong oracle

Chỉ mục bình thường

SELECT owner, index_name, tablespace_name,status
FROM dba_indexes;

cách kiểm tra các chỉ mục không sử dụng được trong oracle

SELECT owner, index_name, tablespace_name,status
FROM dba_indexes
WHERE status = 'UNUSABLE';

Phân vùng chỉ mục:

SELECT index_owner, index_name, partition_name, tablespace_name,status
FROM dba_ind_PARTITIONS;

Nếu bạn muốn biết các phân vùng ind không sử dụng được, thì chúng tôi có thể sử dụng truy vấn bên dưới

SELECT index_owner, index_name, partition_name, tablespace_name,status
FROM dba_ind_PARTITIONS
WHERE status = 'UNUSABLE';

Lập chỉ mục các phân vùng phụ:

SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status
FROM dba_ind_SUBPARTITIONS;

Nếu bạn muốn biết các phân vùng phụ ind không sử dụng được, thì chúng tôi có thể sử dụng truy vấn bên dưới

SELECT index_owner, index_name, partition_name, subpartition_name, tablespace_name,status
FROM dba_ind_SUBPARTITIONS
WHERE status = 'UNUSABLE';

Truy vấn để kiểm tra Chỉ mục liên kết với Ràng buộc

SELECT index_name, table_name, uniqueness
  FROM DBA_INDEXES WHERE table_name = '&1';

Liệt kê tất cả các chỉ mục trong một lược đồ

SELECT index_name, table_name, uniqueness
  FROM DBA_INDEXES WHERE owner = '&1';

Truy vấn để tìm thống kê chỉ mục cho bảng

set linesize 200
set pages 250
set verify off
col blevel format 99
col table_name format a22 heading 'TABLE NAME'
col u format a1 heading 'U'
col index_name format a25 heading 'INDEX NAME'
col column_name format a23 heading 'COLUMN NAME'
col column_position format 99 heading 'SEQ'
col column_length format 9999 heading 'LEN'
col leaf_blocks format 999990 heading 'LEAF|BLOCKS'
col distinct_keys format 9999990 heading 'DISTINCT|KEYS'
col avg_leaf_blocks_per_key format 999990 heading 'LEAF|BLKS|/KEY'
col avg_data_blocks_per_key format 999990 heading 'DATA|BLKS|/KEY'
rem
break on table_name skip 1 on index_name on u
rem
select i.table_name,i.blevel, i.leaf_blocks, i.distinct_keys,i.avg_leaf_blocks_per_key, i.avg_data_blocks_per_key,
       decode( i.uniqueness, 'NONUNIQUE', null, 'UNIQUE', 'U', 'BITMAP', 'B', '?' ) u,
       i.index_name,i.last_analyzed, c.column_position, c.column_name, c.column_length
  from sys.dba_ind_columns c, sys.dba_indexes i
 where (i.table_owner,i.table_name) in ('&1','&2')
   and i.owner = c.index_owner
   and i.index_name = c.index_name
 order by i.table_owner, i.table_name, i.index_name, c.column_position
/

Truy vấn để tìm định nghĩa cột chỉ mục

ttitle 'Index Column Definitions'
rem
set linesize 100
set pages 250
set verify off
col table_name format a22 heading 'TABLE NAME'
col u format a1 heading 'U'
col index_name format a20 heading 'INDEX NAME'
col column_name format a25 heading 'COLUMN NAME'
col column_position format 99 heading 'SEQ'
col column_length format 999 heading 'LEN'
rem
break on table_name skip 1 on index_name on u
rem
select i.table_name,
       decode( i.uniqueness, 'NONUNIQUE', null, 'UNIQUE', 'U', 'BITMAP', 'B', '?' ) u,
       i.index_name, c.column_position, c.column_name, c.column_length
  from sys.dba_ind_columns c, sys.dba_indexes i
 where i.table_owner like upper('&owner')
   and i.table_name like upper('&table')
   and i.index_name like upper('&index')
   and c.column_name like upper('&column')
   and i.owner = c.index_owner
   and i.index_name = c.index_name
 order by i.table_owner, i.table_name, i.index_name, c.column_position
/

Với 12c, Oracle đã giới thiệu khái niệm Chỉ mục từng phần trong bảng Phân vùng. Dạng xem * _INDEXES đã được sửa đổi để bao gồm cột CHỈ SỐ, cho biết chỉ mục là ĐẦY ĐỦ hay ĐỐI TÁC.

Kiểm tra trạng thái lập chỉ mục của chỉ mục.

SELECT index_name,
indexing
FROM dba_indexes
ORDER BY 1;

INDEX_NAME    INDEXING
------------------------- -------
EXP_INDEX_N1 PARTIAL

This happened when we have indexing partial tag in the create index statement.
CREATE INDEX EXP_INDEX_NI ON tab_name(col1) Local INDEXING PARTIAL;

Các bài viết có liên quan
Chỉ mục ảo trong Oracle:Chỉ mục ảo trong Oracle là gì? Công dụng, hạn chế, ưu điểm và cách sử dụng để kiểm tra kế hoạch giải thích trong cơ sở dữ liệu Oracle, Tham số ẩn _USE_NOSEGMENT_INDEXES
Hệ số phân cụm chỉ mục Oracle:Hệ số phân cụm chỉ mục Oracle được tính toán như thế nào và nó tác động như thế nào đến kế hoạch giải thích
Bảng phân vùng Oracle :Bảng phân vùng oracle LÀ GÌ ?, Làm thế nào để di chuyển đối tượng hiện có sang đối tượng Phân vùng ?, Phân vùng cho Hiệu suất - Cắt tỉa phân vùng
Chỉ số phân vùng Oracle:Tìm hiểu chỉ mục phân vùng Oracle, Chỉ mục phân vùng toàn cầu là gì ?, Tiền tố cục bộ là gì? chỉ mục, chỉ mục cục bộ không có tiền tố
Các loại chỉ mục trong oracle:Trang này bao gồm thông tin về chỉ mục oracle, các loại chỉ mục khác nhau trong oracle, ví dụ như cách tạo / thả / thay đổi chỉ mục trong oracle

Tôi hy vọng bạn thích tập hợp các truy vấn liên quan đến chỉ mục oracle này và nó sẽ giúp tìm câu trả lời cho các truy vấn khác nhau như cách tìm chỉ mục trên bảng, liệt kê tất cả các chỉ mục trong lược đồ, trạng thái chỉ mục trên bảng và nhiều hơn nữa. Vui lòng chia sẻ với tôi những gì khác mà tôi có thể thêm vào danh sách này để tăng thêm giá trị cho bài đăng này. Vui lòng cung cấp thông tin phản hồi cho tôi

Cũng đọc
Cách liệt kê tất cả các bảng trong Oracle:chúng ta có thể lấy Danh sách Tất cả các Bảng trong Oracle bằng cách truy vấn all_tables hoặc user_tables hoặc dba_tables. chúng ta có thể chọn cột và mệnh đề where theo nhu cầu
Cách kiểm tra kích thước bảng trong Oracle:Tìm hiểu Truy vấn để kiểm tra kích thước bảng trong cơ sở dữ liệu Oracle, mười bảng lớn hàng đầu trong lược đồ cụ thể hoặc vùng bảng cụ thể trong oracle
Cách quản lý chỉ mục

Các khóa học được đề xuất

Đây là Khóa học Udemy hay dành cho Oracle SQL
Oracle-Sql-Step-by-step:Khóa học này bao gồm sql cơ bản, các phép nối, Tạo Bảng và sửa đổi cấu trúc của nó, Tạo Dạng xem, Liên minh, Liên hợp-tất cả và nhiều thứ khác . Một khóa học tuyệt vời và phải có cho người mới bắt đầu sử dụng SQL
Khóa học chứng chỉ SQL Oracle hoàn chỉnh :Đây là một khóa học tốt cho bất kỳ ai muốn sẵn sàng tìm việc cho các kỹ năng của nhà phát triển SQL. Một khóa học được giải thích thú vị
Oracle SQL Developer:Cơ bản, Mẹo và Thủ thuật :Công cụ dành cho nhà phát triển Oracle Sql đang được nhiều nhà phát triển sử dụng. Khóa học này cung cấp cho chúng ta các thủ thuật và bài học về cách sử dụng nó một cách hiệu quả và trở thành một nhà phát triển sql hiệu quả
Oracle SQL Performance Tuning Masterclass 2020 :Điều chỉnh hiệu suất là một trong những kỹ năng quan trọng và được tìm kiếm nhiều nhất. Đây là một khóa học tốt để tìm hiểu về nó và bắt đầu thực hiện điều chỉnh hiệu suất sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khắc phục sự cố với Oracle Trigger để tạo id từ một chuỗi

  2. Làm thế nào để Kiểm tra xem tệp có phải là hình ảnh bằng PL / SQL hay không?

  3. Làm thế nào để sắp xếp theo số đầu tiên với truy vấn SQL của Oracle?

  4. Cổng PL / SQL trong R11i

  5. Cách thay đổi định dạng ngày trong cơ sở dữ liệu oracle