好吧,我有一張擁有10年價值數據的表格,性能正在受到重創。我計劃將舊數據轉移到單獨的歷史數據表中。問題是我需要從第一個表中選擇,如果它在那裏,第二個表如果沒有。我不想做一個連接,因爲那樣它總是會在第二張桌子上查找。幫幫我?數據倉庫的變化很小
0
A
回答
1
如果您仍然需要查詢數據,我決不會將它移動到另一個表中。現在桌子有多大?什麼是索引?你有沒有考慮過分配桌子?
如果您必須移動到另一個表,您可以使用if語句在存儲的特效庫中查詢。首先查詢主表,然後如果rowcount = 0查詢另一個表。對於不在主表中的記錄來說速度會更慢,但如果它們在那裏的話應該保持快速。但是,它不知道你什麼時候需要記錄。
的代碼示例來做到這一點:
CREATE PROC myproc (@test INT)
AS
SELECT field1, field2 from table1field1, field2 from table1
IF @@rowcount = 0
BEGIN
SELECT field1, field2 FROM table2 field1, field2 from table1
END
但真正的partioning和索引正確是probaly您的最佳選擇。還優化現有的查詢。如果您正在使用已知性能較差的技術,例如遊標,相關子查詢,調用視圖的視圖,標量函數,不可調整的where子句等,只修復查詢可能意味着您不必進行歸檔。
有時候,購買更好的服務器也會有幫助。
+0
原諒我對這部分的無知,我已經使用存儲過程進行更新等,但從未從一個選擇。語法怎麼看? – 2011-02-22 22:05:28
1
而不是使用一個單獨的歷史表,您可能需要考慮通過日期的某個函數(年或許?)對錶進行分區以提高性能。
相關問題
- 1. 噸-SQL測試數據倉庫的2型變化
- 2. 數據倉庫每小時報告
- 3. 並行數據倉庫 - 腳本化數據庫
- 4. 變化Git倉庫的拉碼
- 5. SQL數據倉庫
- 6. 數據倉庫 - OLTP
- 7. Android:java.lang.OutOfMemoryError雖然很小的數據庫
- 8. 有很多數據庫變化的流星
- 9. Hive中的數據倉庫
- 10. TortoiseGit克隆SVN倉庫 - 拉新變化
- 11. sqlpackage.exe很慢部署小型數據庫
- 12. 數據庫規範化(1到很多)
- 13. 數據庫表vs vs/yml屬性值很少變化
- 14. 數據倉庫 - OLAP操作
- 15. 創建數據倉庫
- 16. Cassandra用於數據倉庫
- 17. 什麼是數據倉庫?
- 18. 數據倉庫教程
- 19. ASP.NET MVC數據倉庫
- 20. 春數據倉庫Implenation
- 21. 數據倉庫和OLAP,ROLAP
- 22. 算法在數據倉庫
- 23. 數據倉庫設計
- 24. 數據倉庫和Django
- 25. 直方圖數據倉庫
- 26. ASP.NET MVC數據倉庫
- 27. 選擇大數據倉庫
- 28. Benchmarking SQL數據倉庫DWU
- 29. 休眠和數據倉庫
- 30. 構建數據倉庫?
您不能根據標識字段進行遷移或創建日期嗎? – Oded 2011-02-22 21:54:27
10年的數據:有多少行,這些索引表現如何?統計更新? – 2011-02-22 21:57:48
@Oded - 請詳細說明,我計劃每週執行一次流程,並將符合特定條件的行移至歷史記錄表。我希望的是說:「SELECT * from currentdata,如果0 rows select * from olderdata」 – 2011-02-22 21:58:38