2012-02-21 39 views
5

我有一張非常大的表格,包含大約2000萬行。根據一些過濾標準,我必須從該表中獲取約400萬行。 過濾條件中的所有列都被一些索引覆蓋,表格統計數據是最新的。最佳行大小從一張大表中取出一次

我建議不要一次加載所有行,而應使用批量大小,例如說一次80000行,這將比一次加載所有行更快。

你能提出這個想法是否合理嗎?

如果有意義,一次加載的最佳行大小是多少。

+0

你想用選定的行做什麼? – 2012-02-21 12:45:07

+0

我不得不在內存中加載這些db行,並保留一些內存緩存中的東西 – ManojGumber 2012-02-21 12:47:45

+0

好吧,除了使用'order by'子句(這可能會對查詢性能產生重大影響),我不是確定你將如何保證一行不會出現在多個批次中。 – 2012-02-21 13:06:40

回答

1
  1. 它可以比單個sql快得多。
  2. 使用PK分割數據。
  3. 批量大小。這取決於線的長度和處理時間。從10 000開始。
  4. 如果可能,請提供線索。
0

使用SSIS來操縱你的數據......它做你想做的一切,比如線程和優化負載大小和緩存。

旋轉立方體或查看商業智能數據倉庫工具...