테이블의 열에 특별히 사용하는 시퀀스가 정의되어 있습니다. 1 씩 증가하고 10을 캐싱합니다. 이것은 거대한 테이블이며 열에 인덱스가 없습니다. 열의 최대 값을 알고 싶습니다. max 함수는 많은 시간이 걸릴 것이므로 보기의 last_number
열을 사용하고 있습니다. 이것이 올바른 접근 방법입니까? 특히 캐싱이 관련되어 있습니까? 따라서 표가 삽입 전용이고 삭제가없는 경우 1000이 삽입 된 최대 값인 경우 last_number
이 1000으로 표시됩니까?최대 함수 대 Oracle의 all_sequences 사용
편집 : 정상적인 트래픽을 위해 데이터베이스를 사용할 수없는 경우이를 알고 싶습니다. 이걸 실행할 때 다른 연결이 없습니다.
일반적으로 작동하지 않습니다. 트랜잭션이 롤백되었거나 다른 세션에서 행을 삽입했지만 아직 커밋되지 않은 경우에는 어떻게됩니까? 왜 '최대'값을 알고 싶습니까? 시퀀스의'currval'을 사용하고 싶지 않으십니까? (현재 세션의 시퀀스에서 얻은 마지막 값을 알려줍니다). –
해당 열의 최대 값 또는 테이블의 행 수를 알고 싶습니까? – APC