簡體   English   中英

SQL Server是否等效於HashMap?

[英]SQL SERVER equivalent of a HashMap?

在Java應用程序中,如果必須多次查詢一個表(小的),則可以簡單地創建一個HashMap並將表的內容存儲在其中。 一旦完成此操作,就可以對HashMap而不是表進行后續調用,從而大大提高了程序的性能。

我在SQL Server中也有類似的情況,我必須在存儲過程中循環說5,00,00次,並且每次都要查詢許多小表。 有沒有一種方法可以通過使用SQL Server中的等效概念來大大減少執行該過程所需的時間?

數據庫具有類似的功能,但隱藏在頁面緩存機制中。 如果您反復使用表,則它將被加載到內存中,並且內存操作比磁盤操作快得多。

我應該注意,您可以使用內存優化表將表顯式存儲在內存中(請參閱此處 )。 如果您的應用程序有必要,它們可以維護數據完整性以進行數據修改。

此外,如果您要隨機訪問表中的行,則應定義索引。 大多數數據庫(包括SQL Server)中的索引都使用二進制樹。 二叉樹和哈希圖之間的性能差異-尤其是在小表上-不會顯着。

我應該注意,如果您的目標是編寫盡可能優化的代碼,則SQL可能不是正確的環境。 SQL引擎所要做的不僅僅是處理數據,尤其是在數據管理和維護數據完整性方面。 這產生了開銷。 對於它們所做的一切 ,它們通常都非常有效,但是對於特定的算法,將邏輯編寫到其他地方可能會更快。 (當然,在數據庫中,您可以免費獲得並行性。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM