2014-02-11 3 views
1

외래 키의 개념이 있지만 Netezza가 외래 키 제약 조건을 '적용'하지 않는 이유는 무엇입니까? 제약을 강요하지 않는다면 어떤 이점이 있습니까?Netezza 외래 키 제약

답변

4

Foreign Keys은 여전히 ​​쿼리 최적화 프로그램에서 쿼리 비용을 예측하면서 가장 효율적인 쿼리 계획을 작성하는 데 사용됩니다. 또한 Foreign/Primary Keys을 사용하여 Microsoft Visio를 포함한 많은 데이터베이스 시각화 도구를 이용하는 것이 중요합니다. 제약 조건을 적용하지 않는 이점은 속도입니다. Netezza는이 기능을 유지하지 않아도 추가 성능을 높일 수 있습니다.

Netezza Manual

0

테스트 네티 SQL : FOREIGN KEY 절

------------------------------------------------------------------ 
/* 
NOTICE: foreign key constraints not enforced  <-- Netezza SQL Parser complains here 
*/ 
/* Start time 4/25/2013 6:21:32 PM, end time 4/25/2013 6:21:32 PM. */ 
/* Duration 0.078125 sec. */ 
CREATE TABLE table2ref 
(
     col1 smallint NOT NULL 
     ,colref2 smallint 
     ,col3  varchar(30) 
    ,CONSTRAINT fk_column_colref2          <-- THIS IS REF CONSTRAINT 
    FOREIGN KEY (colref2) 
    REFERENCES test2delete (col1)      <-- the ref table must already be created 
); 

/* Start time 4/25/2013 6:21:32 PM, end time 4/25/2013 6:21:37 PM. */ 
/* Duration 4.53125 sec. */       <-- Observe how long the INSERT takes 
/* Records Affected: 1. */ 

insert into table2ref values (3,12345,'reftabstring'); <-- THIS IS NON-EXISTING KEY "12345" 

/* Start time 4/25/2013 6:21:37 PM, end time 4/25/2013 6:21:39 PM. */ 
/* Duration 2.65625 sec. */       <-- Observe how long the INSERT takes 
/* Records Affected: 1. */ 

insert into table2ref values (3,12345,'reftabstring');