2010-06-07 63 views

回答

22

REDUCED就像是一個'盡力而爲'DISTINCT。鑑於DISTINCT 保證沒有重複的結果,減少可能會消除一些,全部或沒有重複。

有什麼意義?那麼DISTINCT可能很昂貴; REDUCED可以執行直接的重複數據刪除工作(例如,立即刪除重複結果),而無需記住每一行。在許多應用程序中,這足夠好。

話雖如此,我從來沒有使用過REDUCE,我從來沒有見過任何人使用過REDUCED,並且在演講或教程中從未見過REDUCED。

+1

剛剛發現這個查詢

在我自己的實現減量時,我只消除重複已被使用:http://www.franz.com/agraph/support/documentation/current /twinql-tutorial.html#header3-92說 - 如果你不需要重複刪除,但你不需要重複的條目,要麼 - 如果你依靠計數是正確的,前者是這種情況,前者充足 - 那麼你可以指定REDUCED而不是DISTINCT。 **這允許AllegroGraph放棄重複值,如果這樣做有利的話。** – Tomalak 2010-06-07 15:04:25

+3

在處理非常大的結果集時,我們使用了REDUCED,其中DISTINCT太慢,但是有很多重複項。儘管這很有用,但它非常罕見。 – 2012-11-05 10:10:36

1

在我看來(並且在我自己的SPARQL實現中)REDUCED實際上是一個可選的DISTINCT約束條件,僅當引擎認爲它是必要的時才應用,即查詢引擎將決定是否消除基於如果OFFSET/LIMIT也被用來