2012-12-20 3 views
0

기존 시퀀스의 캐시 크기를 업데이트하고 테이블과 같은 oracle 시퀀스를 설명하고 싶습니다. 그것을하는 방법?오라클 시퀀스 변경 및보기

와 무슨 순서

+0

기존 시퀀스를 업데이트하고 싶습니다. 올바른 방법과이를 수행하는 단점을 모릅니다. 그 이유는 내가 여기에 – Anandhakrishnan

+0

시퀀스 정의보기는 일반적으로 SQL 클라이언트 도구를 사용하여 수행됩니다. 어느 쪽을 사용하고 있습니까? –

+0

sqlDeveloper를 사용하여 UI의 세부 사항을 볼 수 있지만이를 수행 할 수있는 명령이 있습니까? – Anandhakrishnan

답변

2
Alter sequence seq_name cache 20; 

docs를 참조하십시오의 캐시 값을 증가의 모든 단점이 있습니다.

당신이 DBMS_METADATA 패키지를 사용할 수있는 DDL을 얻으려면이 느릅 나무는 모든 개체에 사용할 수 있습니다 : 당신이 순서에서 대규모 인출이있을 때

select dbms_metadata.get_ddl('SEQUENCE','SEQ_NAME') from dual; 

캐시의 크기를 늘리면 유용합니다. 당신이 그것을 사용한다는 사실을 고려할 때 그것을 증가시키는 것은 아무런 단점도 없습니다.

그러나 한 번에 1 백만 개의 값을 생성하고 10 개만 사용하면 999990 값이 손실되기 때문에 어쩌면 좋은 아이디어가 아닐 수 있습니다. 다음 세션에서는 또 다른 1000000 값이 생성됩니다. 엔진이 엔진을 생성하여 세션에 값을 할당한다고 생각합니다.

예를 들어 제 생각에는 세션에서 일반적으로 사용하는 것보다 10 배 적은 캐시가 괜찮습니다.

UPDATE : 데이비드 알 드리지의 코멘트를 추가 :

큰 캐시의 유용성은 정말 그냥 큰 선택뿐만 시스템이 일반적으로 사용되는 의 속도와 관련, 너무한다 많은 세션이 모두 한 번에 하나의 값을 사용합니다. 배경으로 작은 캐시의 성능 문제는 캐시가 으로 고갈 될 때 SEQ $ 시스템 테이블을 수정할 필요가 있기 때문에 발생합니다. 그것은 작은 작업이지만 분명히 당신은 일을 100 번하고 싶지는 않습니다.

따라서 캐시를 늘리면 같은 리소스에서 동시 세션 수가 줄어들게됩니다.

+0

감사합니다 :) 그리고 시퀀스의 캐시 크기를 늘리는 단점은 무엇입니까? – Anandhakrishnan

+0

@Anandhakrishnan 다른 세션에서 값을 낭비하게 될 것입니다. :)하지만 왜 캐시를 늘리고 싶습니까? 이것은 시퀀스에서 대량을 가져 오는 경우에만 유용합니다. –

+0

@Anandhakrishnan 몇 가지 고려 사항으로 내 대답을 업데이트했습니다. –