2012-07-18 5 views
-1

Vertica DB의 작동 방식을 이해하고 내 쿼리에서 사용할 프로젝션을 만드는 가장 좋은 방법을 알고 싶습니다.투영법을 만드는 가장 좋은 방법은 무엇입니까?

  1. vsql 줄에 코드를 작성하여 만들 수 있음을 알고 있습니다.
  2. Vertica가 자체 프로젝션을 적절히 만들 수 있도록 Vertica 데이터베이스 디자이너에 사용할 쿼리를 제공하십시오.

나는 (DB 디자이너없이) 직접 만들었으므로 약간 혼란 스럽지만 Vertica는 그것을 사용하기 위해 솔기가 없습니다. 여기

은 예입니다 : 나는 테이블 AAA ( id, name, address)가

  • 나는 그것을이 쿼리를 실행할 계획입니다 : 나는를 생성하고이를 위해

    select count(name) from AAA;

  • 프로젝션 proj1 :

    create projection proj1 as select name from AAA;

  • 이제 생성 된 프로젝션을 만들었지 만 explain 폼을 실행하면 select count 스크립트에 생성 된 프로젝션이 사용되지 않는 것으로 나타납니다.

누구든지 여기에서 문제를 이해할 수 있습니까?

답변

1

쿼리 특정 투영 (모든 열을 포함하지는 않음)에는 모든 레코드가 포함될 수 없으므로 테이블의 레코드 개수가 정확하지 않을 수 있습니다. 열/테이블의 행 수를 정확하게 계산하려면 수퍼 프로젝션을 사용해야합니다.

해당 쿼리 특정 투영 대 슈퍼 투영과 비교할 때 장점이 없습니다. 검색어는 '이름'열만 처리하므로 메타 데이터는 검색어 정확도를 보장하면서 검색어 투영과 마찬가지로 신속하게 슈퍼 영사로부터 정보를 제공 할 수 있습니다.

테이블 이름 대신 투영 이름으로 쿼리를 실행하면 특정 투영을 사용하게됩니다. 이 방법으로 실행 시간을 비교할 수 있습니다.

+0

어떻게 투영 이름으로 쿼리를 실행할 수 있습니까? –

+0

괜찮아! , 특정 투영 쿼리를 만든 후에 투영을 호출 할 필요가 없습니다. 단지 열 이름이 필요하며 투영기가 사용할 피사체를 식별합니다 !! THX –

관련 문제