database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41013 게시물 읽기
No. 41013
global index 를 조회하는 방법이 있을까요?
작성자
지나가는
작성일
2015-11-25 10:48
조회수
9,436

 

partittion 테이블에서 글로벌 인덱스를 조회하는 방법이 있을까요? 

아무리 찾아봐도 알 수 없어서 여기 질문드립니다. 

 

 

이 글에 대한 댓글이 총 4건 있습니다.

질문의 의도를 파악하기 힘드네요. 어떤 상황이시고, 어떤 문제를 해결하고 싶으신지, 좀더 구체적으로 기술해주세요.

고서진(longflat)님이 2015-11-26 11:28에 작성한 댓글입니다.

 dba_indexes, dba_part_indexes 에서 인덱스를 조회해보면 

local 만 조회가 가능합니다. 

근대 global 인덱스를 찾아야 하는 경우가 종종 있는데, 

정확히 global 인덱스를 찾는 뷰나 방법이 있는지를 문의하는 겁니다. 

지나가는님이 2015-11-26 16:19에 작성한 댓글입니다. Edit

dba_part_indexes는 partition된 local index의 partition 정보를 포함하고 있으므로 global index정보는 찾을수 없지만, dba_indexes는 global index를 포함한 모든 index 목록을 가지고 있습니다. dba_indexes.partitioned 컬럼의 값을 가지고  global인지 local인지 확인할수 있구요.

 

SQL>
SQL> create table sales_range
  2  (
  3           salesman_id number(5),
  4           salesman_name varchar2(30),
  5           sales_amount number(10),
  6           sales_date date
  7  )
  8  partition by range(sales_date)
  9  (
 10           partition sales_jan2000 values less than(to_date('02/01/2000','dd/mm/yyyy')),
 11           partition sales_feb2000 values less than(to_date('03/01/2000','dd/mm/yyyy')),
 12           partition sales_mar2000 values less than(to_date('04/01/2000','dd/mm/yyyy')),
 13           partition sales_apr2000 values less than(to_date('05/01/2000','dd/mm/yyyy'))
 14  );

Table created.

SQL>
SQL>
SQL> create index sales_range_salesman_gidx on sales_range ( salesman_id );

Index created.

SQL>
SQL> create index sales_range_sales$_date_lidx on sales_range( sales_amount, sales_date) local;

Index created.

SQL>
SQL> select index_name, table_name, partitioned
  2  from user_indexes where table_name = 'SALES_RANGE';

INDEX_NAME               TABLE_NAME              PAR
------------------------------ ------------------------------ ---
SALES_RANGE_SALESMAN_GIDX      SALES_RANGE              NO
SALES_RANGE_SALES$_DATE_LIDX   SALES_RANGE              YES

고서진(longflat)님이 2015-11-26 17:58에 작성한 댓글입니다.

감사합니다. 이렇게 찾으면 될 거 같네요 ^^

 

select owner, table_name, index_name, index_type, partitioned from dba_indexes

where 1=1

AND PARTITIONED = 'NO'

AND (TABLE_OWNER, TABLE_NAME) IN (

SELECT OWNER, TABLE_NAME FROM DBA_TABLES

WHERE PARTITIONED = 'YES'

AND OWNER NOT IN

(

'RMAN','SYS', 'SYSTEM', 'S_VIEW', 'CTXSYS', 'DBSNMP' ,

'WMSYS', 'XDB', 'OLAPSYS', 'QUEST', 'MDSYS', 'WKSYS',

....

)

)

ORDER BY 1,2,3

;

글쓴이님이 2015-11-30 15:27에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41016데이터베이스 SQL 작성했는데 어플라이가 보이지 않아요..!!ㅠㅜ
루루루
2015-11-28
8879
41015append parallel 힌트 질문 드립니다. (사용법) [1]
검콤이
2015-11-27
9188
41014GROUP BY 부분과 ROW의 내용을 컬럼으로 올리는 부분을 조언 부탁드립니다. [4]
이상영
2015-11-25
9579
41013global index 를 조회하는 방법이 있을까요? [4]
지나가는
2015-11-25
9436
41011오라클에서 다른 owner의 트리거 소스 볼 수 있는 권한 부여 방법 [1]
김광표
2015-11-24
8881
41010구간 시작 끝 묶음 및 일련번호 부여 문의 드립니다. [2]
김미림
2015-11-23
8696
41009번호 질문.. [3]
김하늘
2015-11-23
8560
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다