2012-07-18 62 views
-1

我想了解Vertica DB如何工作,並且想知道什麼是創建將由我的查詢使用的投影的最佳方式。創建預測的最佳方式是什麼?

  1. 我知道我可以通過在vsql行上編寫代碼來創建。
  2. 提供將用於Vertica數據庫設計器的查詢,以便Vertica爲其自身創建適當的投影。

我有點困惑,因爲我手工創建它們(沒有數據庫設計器),但Vertica沒有縫合使用它們。

下面是一個例子:

  • 我有表AAA(id, name, address)和我計劃在其上運行此查詢:

    select count(name) from AAA;

  • 對於這個我創建投影稱爲proj1

    create projection proj1 as select name from AAA;

  • 現在我創建了投影,但是當我運行explain表單時,我的select count腳本顯示未使用創建的投影。

誰能幫我理解這裏的問題嗎?

回答

1

查詢特定的投影(不包含所有列)可能不包含所有行,這將不會給出表中記錄的準確計數。爲了保證列/表中行數的準確計數,應該使用超級投影。

查詢特定投影vs超級投影沒有優勢。您的查詢只處理「名稱」列,並且元數據將能夠在任何查詢特定投影的同時以超級投影的形式提供該信息,同時確保計數的準確性。

如果使用投影名稱而不是表名運行查詢,它將強制使用特定的投影。你可以用這種方式比較執行時間。

+0

我該如何運行帶有投影名稱的查詢? – 2012-07-18 20:18:29

+0

確定了! ,創建查詢特定的投影后,我不必調用投影,它只需要列名,它將單獨識別投影將使用!! THX – 2012-07-18 20:37:26

相關問題