2008-09-02 152 views
5

我們有一個SQL服務器數據庫。要以非編程方式操作數據,可以通過右鍵單擊表並選擇「打開表」來使用SQL Server Management Studio。但是,對於非常大的表而言,這很慢,而且排序和過濾非常麻煩。以非編程方式處理SQL Server數據的最佳方式是什麼?

通常我們迄今爲止所做的是創建一個Access數據庫,其中包含指向SQL Server表和視圖的鏈接表。以這種方式打開大型表格會更快,並且Access具有易於使用的右鍵單擊過濾和排序。

但是,從Access 2007開始,使用大型表格時,排序尤其慢。 Access數據庫也可能會無意中鎖定數據庫表,阻止可能需要訪問數據的其他進程。首先創建Access數據庫,並在將新表添加到SQL Server時進行更新也很乏味。

有沒有更好的方式來處理Access的可用性而沒有缺點的數據?

+0

剛剛針對Access 2007發佈的修補程序可能會解決您遇到的性能問題。有關詳細信息,請參閱http://support.microsoft.com/kb/956054。但它只能以形式而不是數據表視圖來解決問題。 – 2008-09-17 03:06:24

回答

2

Joel Coehoorn的答案當然是對的,如果數據很重要或者有天真的用戶使用這些數據,那麼應該開發一個應用程序前端。這就是說,我有一些聰明的用戶(好的,我)用戶需要進入並捅捅。

不是直接查看錶格,而是使用MS Access,但使用查詢來縮小您在列和明智行列中查看的範圍。這將提高速度。然後編輯查詢屬性並確保查詢是No Locks。這應該消除任何阻塞行爲。您可能想要限制返回的行數,這將再次提高速度。您仍然可以在查看時編輯查詢中的數據。

根據您的需要,在SQL Server中設置數據庫視圖以在服務器上而不是在客戶端上執行某些繁重工作可能也很有用。

0

我不知道它如何處理真正大的表格,但Visual Studio比SQL Management Studio對基本表格操作要快得多。在服務器資源管理器中打開數據庫,右鍵單擊表格,然後選擇「打開」以顯示數據或選擇「新查詢」進行過濾,排序等。

+0

Visual Studio花了幾分鐘時間打開一張有600,000行的表格,實際上它比SSMS稍慢。與Access相比,過濾非常麻煩。無論如何感謝您的建議。 – 2008-09-10 19:39:47

0

編輯原始數據是一種危險的無數據,沒有。更好地確定你發現自己這樣做的情況,並將應用程序接口放在一起,作爲一箇中介,防止你做出像打破外鍵這樣的愚蠢行爲。

+0

「數據庫管理系統應該始終強制執行它可以實施的約束,而不是依靠應用程序來避免寫入違反約束條件的數據。」你如何打破外鍵? – onedaywhen 2008-10-13 20:05:24

0

我不知道大數據集的性能會如何,但open office有一個數據庫程序(Base),它是一個Access克隆,可能就是您要查找的內容。

1

我用Visual Studio做了很多東西,只是爲了方便,而不是直接登錄到服務器和數據庫管理器。

但是,您是否嘗試過Toad for MS SQL(來自Quest Software)?我一直都在使用Oracle,並且取得了很好的結果(通常比Oracle的工具更好)。

0

您可能想要閱讀 Tony Toews's Access Performance FAQ,它提供了許多關於如何提高Access應用程序性能的提示。也許其中一個提示可以解決您的A2K7應用程序中的問題。

相關問題