2016-09-22 57 views
1

爲了提高性能,建議刪除表屬性中定義的子數據表,例如參見Performance Tips To Speed up your Access 2007 Database表的OrderBy屬性是否影響性能

在表中還有另一個名稱爲OrderBy的屬性。有誰知道這個屬性是否也影響使用表的查詢,表單和報表的性能,還是僅僅在從表中直接查看記錄時才使用?

+0

[按順序]執行,數據庫引擎必須執行和暫時獲取結果和然後按順序執行,然後將結果集提取給用戶..所以是的,這需要一些額外的時間! –

+0

是的,但我們如何知道Access在表中包含查詢時執行orderby? OrderBy也許只有在直接查看錶格時纔會使用。 –

+0

AFAIK,SQL語言與Quantum理論不兼容,其中一個人的「觀察影響事件的狀態」:) :) 想這樣,你有一個子查詢,通過order by來獲得最近的5條記錄。如果數據庫引擎沒有執行[按順序],你會得到完全不同的結果集。 –

回答

1

當您在界面中打開表格時,表格對象的OrderBy屬性主要用於應用默認排序。它不適用於涉及此表的查詢。

從官方文檔OrderBy Property

注:當創建一個新的對象,它繼承了記錄來源,篩選, 排序依據,並表的OrderByOn屬性或查詢它從創建 。 對於窗體和報表,繼承過濾器不會自動在打開對象時應用

所以,當您創建報表或表單,如果記錄源是在其上定義的排序依據,報表或表格將繼承這個特定的排序依據值表:

  • 如果你不」觸摸對象的OrderBy屬性,是的,它會影響性能,因爲自動繼承的OrderBy將會持續。

  • 如果您手動刪除在創建對象時自動繼承的OrderBy屬性值,否則不會影響性能,因爲OrderBy將會消失。

對於查詢這是不同的,因爲你會看到排序依據的SQL或查詢界面,你可以直接將其刪除