배경 : 테이블에는 약 200m 행의 55GB가 있습니다.테이블에서 이름이 변경된 인덱스, 즉 테이블에서 변경된 인덱스가 중요합니까?
중복 테이블에 행 복사를해야하지만 BIGINT ID를 사용하고 원본 테이블에서 CREATE 스크립트를 생성 할 때 테이블 이름, PK의 INT 값 , 그리고 PRIMARY KEY CONSTRAINT (모든 것이 변경되어야 함).
제 질문은 PRIMARY KEY CONSTRAINT 이름을 변경하고 다시 변경하지 않는다면 문제가 될 수 있습니까? 저장 프로 시저 또는 직접 명령이이 제약 조건을 인덱스 등으로 직접 호출 할 수 있습니까? 나중에 이름을 바꿔야 할 필요가 있다면, 즉각적인 프로세스인가, 아니면 긴 테이블이 긴 테이블인가?
다른 색인에 대해서는 중요하지 않다고 생각합니다. 새로운 색인에서 다시 작성하기 전에 원래 표에 놓아야합니다.
그리고 하나 더 질문 : 테이블이 크기에 - 마음의 성능과 대용량 시스템, 나는 다음과 같은 값?
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON,
FILLFACTOR = 95
) ON [PRIMARY]
인덱스 이름에 대한 참조를 전체 서버에서 검색하는 과정이 불가능하거나 비실용적이라고 생각합니다. 추천 된 과정은 [1] table_new에 대한 인덱스를 다른 이름으로 만들거나 [2] 다운 타임 [3] table_old [4]에서 인덱스를 삭제하고 table_new의 인덱스를 원래 이름으로 바꾸고 [5] 테이블 이름을 전환하는 것입니까? 그 단계들을 다른 순서로 놓으시겠습니까? – 333Matt
PK를 제외하고 인덱스 이름이 고유 할 필요는 없다는 것을 알았습니다. 그래서 시스템이 온라인 상태에서 새로운 테이블에 구축 할 수있었습니다. 그리고 신속하게 오프라인 상태로 전환하여 이전 테이블의 데이터 마지막 부분을 복사하고 'PK'를 삭제하고 새 테이블과 'PK'의 이름을 바꿉니다. – 333Matt