2010-01-09 6 views
0

내 데이터베이스에서 개발하는 방법을 알아 내려고하고 있습니다. 예 : 일부 레코드는 데이터베이스에있다 : 서버의 실제 날짜 시간은 2010-01-09 12시 12분 12초 경우데이터베이스의 자동 삭제 작업 문제

alt text http://img109.imageshack.us/img109/2962/datax.png

그래서, 기록 1 위는 삭제해야합니다.

괜찮 으면 좋겠지 만 데이터베이스에있는 경우 예를 들어 1.000.000 기록? 서버는 초 단위로 데이터베이스를 검색하여 어떤 행을 삭제해야하는지 확인해야합니다. 그것은 전혀 효율적이지 않습니다.

내가 Microsoft 서버에 완전히 새로운 해요 그래서 SQL 서버에서 시간 기반 트리거가 없다 도움

답변

1

어떤 종류의 감사하게 될 거라고. 따라서 이것을 일이나 다른 스케줄 된 메커니즘을 통해 구현해야합니다.

삭제 쿼리가 삭제해야하는 데이터를 찾기 위해 전체 테이블 검색을 수행 할 필요가 없도록 대부분 StartDate (종료 날짜?) 열에 인덱스가 필요합니다.


일반적으로 실제로는 초마다 삭제를 수행하지 않습니다. 대신 앱은 결과 집합에서 해당 레코드를 제거하는 방식으로 테이블을 쿼리 할만큼 똑똑해야합니다. 그런 다음 다른 시간 간격으로 지연 제거를 수행하여 정리를 수행 할 수 있습니다. 1 시간에 1 회 또는 1 일 1 회 등.