我們有點混亂的數據庫情況。在實時環境中有效地將數據從一個SQL數據庫轉換爲另一個SQL數據庫
我們主要的後臺系統是用Visual福克斯臨用本地數據(是的,我知道!)
爲了有效地在我們的網站上的數據進行工作,我們選擇定期將數據導出到一個SQL數據庫。但是,這樣做的過程基本上每次清除表並重新插入。
這意味着我們有兩個SQL數據庫 - 一個是我們的FoxPro導出過程寫入的數據庫,另一個是我們的網站讀取的數據庫。
這個問題涉及到從一個SQL數據庫到另一個SQL數據庫的轉換(SqlFoxProData - > SqlWebData)。
對於特定的表(我們的主要應用程序表之一),因爲在此過程中發生各種數據轉換,所以它不是使用自連接的簡單UPDATE,INSERT和DELETE語句,但我們必須使用遊標而不是(我知道!)
多月這已工作正常,但現在我們已經開始在性能問題打在更新時發生(這可以在白天經常發生)
基本上當我們正在從SqlFoxProData.ImportantTable更新SqlWebData.ImportantTable,它會在實時網站上導致偶爾的連接超時/死鎖/其他問題。
我一直在努力優化查詢,緩存等等,但它來到了我正在尋找另一種策略來更新數據。已經想到
一種想法是具有ImportantTable兩份(A和B),一些概念,它的表是當前「活動」,更新所述非活性表,然後切換currenly actice表
ie網站從ImportantTableA讀取,而我們正在更新ImportantTableB,然後我們切換網站從ImportantTableB讀取。
問題是,這是可行的,一個好主意?我之前做過類似的事情,但我並不認爲這對優化/索引等是有好處的。
任何建議歡迎,我知道這是一個混亂的情況......而長期目標是讓我們指向SQL的FoxPro應用程序。
(我們使用的是SQL 2005,如果有幫助)
我要補充的是數據的一致性未在實例中特別重要的,看到的數據總是稍顯落伍
謝謝,你似乎在根據我的想法提出建議。 我腦海裏唯一的問題是,如果這是一項小時工,我們是否會在進行第三階段時爲我們的網站造成問題。 我想我會看看插入/更新/刪除方法... – 2009-01-27 15:15:54