2009-06-11 3 views

답변

0

는, 액세스는 적합한 같은 테이블의 행을 정렬 무료입니다. 내 생각 엔 그 효과는 테이블의 사용 패턴에 달려 있다는 것입니다. 행을 삭제하면 데이터베이스는 단순히 행을 삭제 된 것으로 표시합니다. 압축하면 삭제되지 않은 행이있는 삭제 된 행을 덮어 씀으로써 공간을 되 찾습니다. 테이블에 기본 키가 있으면 데이터베이스는이 프로세스 중에 행 순서를 유지해야하므로 결과적으로 훨씬 비싼 작업이됩니다. 그렇지 않으면 그렇지 않습니다.

2

"테이블에 기본 키가있는 경우 압축하면 테이블 레코드가 기본 키 순서로 다시 저장되므로 관리되지 않는 클러스터 된 인덱스와 동일한 기능을 제공하며 Microsoft Jet 데이터베이스 엔진의 미리 읽기 기능을 제공합니다 훨씬 더 효율적 "이라고 말했다. 클러스터 된 인덱스는 다음 소형, 성능이 여전히 개선 될 때까지.이 유지되지 않지만

ACC2000: Defragment and Compact Database to Improve Performance

"새로운 성형 방법. 이제 데이터베이스를 압축하면. 클러스터 된 인덱스 형식으로 저장되는 지표 결과 Microsoft Jet 2.x와는 달리 데이터 행이 입력 된 방식으로 저장됩니다. 새 클러스터 된 키 압축 방법은 테이블의 기본 키를 기반으로합니다. 입력 된 새 데이터는 시간 순서대로 표시됩니다. " UNIQUE 제약 (또는 고유 색인) NOT NULL 열에있는 경우 다음이가 PRIMARY KEY 대신에 사용됩니다 :이 기사의 어느 쪽을 알려줍니다 무엇

New Features in Microsoft Jet Version 3.0

을 준수해야합니다 무언가이다. 내가 확인할 수 없었던 것은 테이블에 복수 UNIQUE 제약 조건이있는 경우 ACE/Jet에서 하나를 선택하는 방법입니다. 첫 번째 열의 서수 위치? 먼저 NOT NULL 열의 순서가 맞습니까? 너의 추측은 나의 것만 큼 좋다.

1

테이블에는 순서가 없습니다. 테이블 데이터 시트는 테이블 일 수도 있지만 테이블을 표시하는 데 사용되는 UI 개체입니다.

당신이 당신의 테이블의 순서를 제어하려면

은 ORDER BY 절과 함께 SQL 문을 사용합니다.

응용 프로그램에서 테이블보기를 사용하면 안됩니다.

응용 프로그램이없고 기본 순서가 마음에 들지 않으면 테이블 데이터 시트에 ORDER BY 속성을 설정하여 저장하거나 원하는 순서대로 쿼리를 작성하십시오.

는하지만 테이블이 전혀 순서가 아이디어를 포기해야합니다. 단순한 아이디어는 SQL의 기초와 이론을 완전히 모순입니다. 실제 데이터베이스에 레코드가 실제로 저장된 순서는 신경 쓰지 않아야합니다.

+0

"테이블에 순서가 없습니다"- 논리적 SQL 테이블은 물리적 ACE/Jet 기본 테이블이 아니라 예를 들어. 왜 ACE/Jet에서 FIRST 및 LAST 기능을 설정 했습니까? – onedaywhen

+0

그 이유는 무엇인지 모르겠습니다. 나는 그들이 무엇을 반환 할 것인지 예측할 수 없기 때문에 어떤 용도로든 사용 된 적이 결코 없다. Jet에서 갑자기 지원을 중단 한 경우 Access App 중 하나가 중단되지 않습니다. –

+0

무슨 뜻인지 확실하지 않습니다. First/Last의 결과를 예측할 수 없다는 것 이외의 사항은 무엇입니까? "예측할 수 없다"는 말은 테이블의 실제 순서에 대한 첫 번째/마지막 레코드가 반환되지 않는다는 것을 의미합니다. 이는 데이터와 관련이 없기 때문입니다.이것이 First/Last가 정의 된 것이라면, 내가 알고있는 SQL의 모든 원칙과 크게 차이가 난다. –