질문: 오라클에서 실행했던 쿼리 리스트를 조회해볼 수 있나요? | namwhis / 2005-01-13 10:28 |
웹사이트를 관리중인데 최근 원인모르게 데이터들이 삭제가 됩니다. 삭제 처리를 하는 소스에 로그를 남기게 해서 살펴봐도 도통 꼬리가 잡히지 않네요. DB차원에서 실행했던 쿼리들을 살펴보고 싶은데. 오라클에서 어떻게 하면 그런것들을 조회 할 수 있는지 모르겠습니다. 오라클을 잘 아시는 분들 도움을 부탁드립니다. | |
답변: re: 오라클에서 실행했던 쿼리 리스트를 조회해볼 수 있나요? | tzschanbo / 2005-01-13 05:16 |
SELECT ANY TABLE 시스템 권한이 있는 User라면 (DBA라면 당연히 그렇겠지만), V$SQLTEXT라는 View를 통해서 현재 shared pool에 있는 SQL문을 모두 조회할 수 있습니다. shared pool에는 DBMS를 startup한 이후의 모든 SQL문이 보관되는 것은 아니고, pool size가 허용하는 만큼의 최근에 사용된 SQL만이 보관됩니다. 따라서, 사용한 지 오래되는 SQL은 제거될 수도 있습니다. SELECT hash_value, piece, sql_text FROM V$SQLTEXT ORDER BY hash_value, piece; 이렇게 하면 모든 SQL문을 볼 수가 있구요. V$SESSION이라는 View의 SQL_HASH_VALUE column과 V$SQLTEXT.HASH_VALUE 를 join하면 해당 SQL의 세션정보를 얻을 수도 있습니다. |