2012-05-30 48 views
1

我需要使用高速緩存數據庫來分析應用程序,我試圖用CacheMonitor了點。管理%SYS.PTools.SQLStats數據

我已經啓用查詢統計(我想CacheMonitor執行DO SetSQLStats^%apiSQL(3)內部),兩天後,我的服務器已經磁盤空間。恐怕有太多的數據在%SYS.PTools.SQLQuery%SYS.PTools.SQLStats,我想釋放一些空間。

是否有任何管理工具來管理這些數據?我怎樣才能從sql統計數據中刪除數據?

注:我的關於Caché的知識幾乎沒有。

回答

2

這聽起來像這是一個如何刪除一個全球性的再回收磁盤空間相當普遍的問題。

要刪除數據,您應該能夠使用SQL刪除語句來清除%SYS.PTools.SQLStats(應該更大)和/或%SYS.PTools.SQLQuery。

由於這是緩存,你也可能會殺了全球的命令行。我沒有使用過這些類,但是查看^ oddDEF中的類定義,它似乎將數據存儲在^%SYS.PTools.SQLQueryD,^%SYS.PTools.SQLQueryI和^%SYS.PTools.SQLQueryS(它們是標準的默認存儲空間,因此無論如何都可能)。

如果你只是想刪除一些它,你將需要手藝自己的SQL它。

一旦被刪除,實際上你需要收縮數據庫(最喜歡的數據庫,它可以動態地增長,但不會自動放棄任何空間)。請參閱this reference以獲取此方法的一個示例。基本思想在第3頁 - 您可以創建一個新的數據庫,然後將所有數據複製到該數據庫中,然後在確定不需要時刪除舊數據庫。不要忘記先做一個備份。

爲了使將來更容易,您可以使用全局映射功能將%SYS.PTools全局數據保存到它們自己的新數據庫中。然後當你想縮小這個數據庫時,你可以用一個新數據庫替換它而不需要複製所有的數據(正如在%SYS.PTools.SQLStats的類文檔中所建議的那樣)。