60 분마다 실행되는 프로세스가 있습니다. 한 테이블에서 모든 데이터를 제거한 다음 다른 테이블에서 레코드를 삽입해야합니다. 문제는 데이터를 삭제하고 다시 삽입하는 데 오랜 시간이 걸린다는 것입니다. 테이블에 데이터가 없으면 사용자에게 표시됩니다. 사용자가 이것을 보지 않고 데이터를 새로 고치는 방법이 있습니까?모든 데이터를 삭제 한 다음 새 데이터를 삽입하는 방법
답변
삭제하는 대신자를 수 있습니까? truncate (로깅 된 동안)는 훨씬 더 빠르며 빠르다.
한 번에 1000 ~ 10000 개 행을 삭제하려고 (작은 로그 축적 행 많은 양의 속도에 큰 증가를 삭제하십시오.)
을 정말 빠른 성능은 두 번째 테이블을 만들 수 있습니다 원하는 경우 절단 할 수없는 경우 데이터로 채운 다음 첫 번째 테이블을 삭제하고 두 번째 테이블의 이름을 첫 번째 테이블로 바꿉니다. 이 작업을 수행 할 때 테이블에 대한 모든 사용 권한을 잃게되므로 사용 권한이 부여 된 테이블에 사용 권한을 다시 적용해야합니다.
테이블에서 모든 데이터를 제거하려면 delete
대신 TRUNCATE TABLE
을 사용하십시오. 더 빠릅니다.
당신이 어떤 세부 사항을 제공하지만, 당신이 시도 할 수 있습니다 것은하지 않았기 때문에 하드 조금 말을하는 것입니다 삽입에 관해서는 :
- 옵션 1 - 사용 임시 테이블
create table table_temp as select * from original_table where rownum < 1; //insert into table_temp drop table original_table; Exec sp_rename 'table_temp' , 'original_table'
- 옵션 2 - 사용 2 타 "액티브 - 패시브"- 데이터에 대한 2 개의 테이블과 그 위에 선택할 뷰가 있습니다. 뷰는 선택할 테이블을 지정하는 세 번째 테이블과 조인합니다. "능동 - 수동"개념의 일종. 내가 접근 아래에 따를 것입니다
with active_table as (select 'table1_active' active_table) select 1 data where 'table1_active' in (select * from active_table) union all select 2 where 'table2_active' in (select * from active_table) //This returns only one record with the "1"
: 개념을 설명합니다. 그 동안 삭제 및 재 삽입에 시간이 걸리는 이유를 해결합니다. oldtable (maintable
)
t1
에 물건을 할로
- 은 동일한 데이터를 가진 새 테이블 (
t1
)를 만듭니다. - 물건이 완료되면
t1
을maintable
으로 바꿉니다.
레코드를 복사하여 레코드에 복사 한 모든 레코드는 일련 번호 (레코드에 복사 된 모든 레코드에 대해 동일)를 유지하고 다른 파일은 활성 상태의 시퀀스를 유지하며 항상이 테이블에 대한 조인을 선택합니다 - 새 레코드를 복사 할 때 아직 활성화되지 않은 새 시퀀스가있는 경우 해당 시퀀스가 모두 복사 된 후 시퀀스 테이블이 새 시퀀스로 업데이트됩니다 - 중복 시퀀스 레코드는 여유있게 삭제됩니다.
예
는 이제 테이블이 추가 필드 SeriesNo
을 가지고 있으며, 테이블 ActiveSeries
필드 SeriesNo
을 가지고 가정하자. 테이블의
모든 쿼리 :
SELECT *
FROM YourTable Y
JOIN ActiveSeries A
ON A.SeriesNo = Y.SeriesNo
다음 ActiveSeries
에 SeriesNo
를 업데이트하는 즉시 사용할 수 기록의 새로운 시리즈를 만든다.
테이블의 모든 행을 삭제하는 경우 DELETE 대신 테이블에 대해 TRUNCATE 문을 사용할 수 있습니다. 그것은 당신의 과정의 일부를 가속화 할 것입니다. 이 경우 테이블에있는 모든 ID 시드가 재설정됩니다. 제안 된대로이 프로세스를 트랜잭션으로 래핑 할 수 있으며 트랜잭션 격리 수준을 설정하는 방법에 따라 트랜잭션 중에 데이터를 쿼리 할 때 사용자에게 표시되는 내용을 제어 할 수 있습니다.
- 1. 모든 데이터를 삭제 한 후 데이터를 처음부터 삽입하는 SQL Lite 데이터베이스
- 2. 테이블에 데이터를 삽입하는 방법
- 3. PostgreSQL을 - 한 시간보다 오래된 데이터를 삭제 한 다음 같은 테이블
- 4. 한 테이블의 데이터를 표시 한 다음 해당 데이터를 PHP의 다른 테이블에 삽입하는 방법?
- 5. 새 데이터를 저장소에 추가 한 후 새 데이터를 다시로드하는 방법
- 6. POST 데이터를 삽입하는 방법
- 7. Zend_Form에 데이터를 삽입하는 방법
- 8. 데이터를 삽입하는 방법?
- 9. edittext에서 데이터를 삽입하는 방법
- 10. 데이터를 삽입하는 방법 Excel에서 선택
- 11. TextBox에서 데이터를 GridView에 삽입하는 방법
- 12. 삭제 된 데이터를 테이블에 삽입하는 트리거
- 13. 새 열에 데이터를 삽입하는 SQL 쿼리
- 14. NSUserDeafults에 영구 데이터를 삭제 한 후, 어떻게
- 15. 어댑터에서 목록보기로 데이터를 삽입하는 방법
- 16. mysql에서 런타임에 데이터를 삽입하는 방법
- 17. Swift3에서 엔티티에 새 데이터를 삽입하는 방법은 무엇입니까?
- 18. 오이 모든 데이터를 삭제 계속
- 19. 트리거에 삽입하는 동안 데이터를 업데이트 한 다음 삽입하십시오.
- 20. NSArrays에서 데이터를 코어러스에 삽입하는 방법
- 21. C에서 textboxes 데이터를 삽입하는 방법 #
- 22. 데이터베이스에 많은 데이터를 삽입하는 방법
- 23. MySQL 테이블에서 모든 데이터를 삭제하고 새 데이터로 테이블을 채우는 방법
- 24. 데이터베이스에 백만 데이터를 삽입하는 방법
- 25. 모든 데이터를 삭제 한 후 기본 키를 1로 재설정
- 26. Firebase 모든 어린이에게 새 데이터를 추가하는 방법
- 27. 다음 조건을 사용하여 SQL Server에 데이터를 수동으로 삽입하는 방법
- 28. asp.net에서 한 페이지의 모든 데이터를 검토하는 방법?
- 29. xml 데이터를 SQL에 삽입하는 방법
- 30. Kentico 데이터베이스에 데이터를 삽입하는 방법
테이블 이름을 변경 한 다음 새 테이블을 만들고 삽입하십시오. – NEER