2013-04-22 35 views
0

我有一個數據庫表(稱爲主)有大約40列。其中11個總是包含大約每100.000行的常量值。主表與11個恆定的列與主表與獨立的常量表

這個結構的缺點是,當我需要更新這11列值時,我需要去更新所有100.000行。

我可以將所有常量數據移動到不同的表中,並且只在一處更新它,而不是在100.000處。然而,如果我這樣做,當我顯示字段時,我需要在兩個表之間創建INNER JOIN,我知道這會使SELECT語句變慢。

我必須說,更新列出現比讀取(顯示)數據更少。

您如何建議我將數據存儲在數據庫中以獲得最佳性能?

感謝

+0

我知道這可能不是有用的,但我認爲這將是審慎的運行某種形式的兩種機制的績效分析。在維護收益旁邊,性能影響可能可以忽略不計。有關連接的討論,請參閱http://stackoverflow.com/questions/2726657/inner-join-vs-left-join-performance-in-sql-server。 – 2013-04-22 15:42:27

回答

0

我會在一個單獨的表

你與那些靜態的11個多餘的值腹脹主表中的11列:這會影響密度(每8K頁面行)和內存查詢的足跡。

也就是說,你只需用與主表,如果你打出了靜態數據讀取和處理中少了很多數據