是否有一個進度分析工具,允許我查看針對OpenEdge數據庫執行的查詢?如何剖析opensge數據庫?
我們正在從OpenEdge數據庫遷移到SQL數據庫。爲了正確映射數據,我們希望在OpenEdge數據庫上運行某些應用程序報告,並查看正在執行哪些數據庫查詢以檢索數據。
這是可能的某種進度分析工具(一個SQL Server分析)?最好是免費的...
是否有一個進度分析工具,允許我查看針對OpenEdge數據庫執行的查詢?如何剖析opensge數據庫?
我們正在從OpenEdge數據庫遷移到SQL數據庫。爲了正確映射數據,我們希望在OpenEdge數據庫上運行某些應用程序報告,並查看正在執行哪些數據庫查詢以檢索數據。
這是可能的某種進度分析工具(一個SQL Server分析)?最好是免費的...
進度是面向記錄的,不像SQL那樣定位,所以你的報告不是一個單一的查詢或一組查詢,它更可能是大量的記錄查找與你想要的考慮類似查詢的操作。
根據您運行的版本,有一種方法可以向客戶端發送信號以查看其當前正在執行的操作,但這樣做幾乎肯定會給您提供足夠的信息來辨別正在進行的操作「引擎蓋下。」
長話短說,您的選擇是得到Dataserver product,這樣您可以將Progress客戶端附加到SQL數據庫 - 這將使您能夠使用SQL數據庫,而不會丟失Progress功能。第二種選擇是獲取程序源代碼的副本,以瞭解報告的結構。
感謝蒂姆,我被告知我需要重新編譯ABL才能通過數據服務器對SQL後端運行 - 這是正確的嗎? – Drammy
我對Dataserver產品沒有經驗,所以我不能說權威。我的_guess_會是你需要重新編譯,如果DS下的表結構不同於使用Progress db連接看到的表結構。 –
Tim很正確 - 沒有源代碼,查看查詢不太可能爲您提供很多見解。
無論如何,有一些工具和功能可以提供有關查詢的信息。也許你的目的最有用的是指定類似於:
-logentrytypes QryInfo -logginglevel 3 -clientlog "mylog.log"
在會話啓動。
您可以使用會話觸發器來識別幾乎任何程序完成的任何事情,而無需修改或訪問這些程序的來源。設置這可能是更多的工作比爲你的目的值得。我們有一個圍繞這個想法構建的測試系統。一個很大的缺陷:CAN-FIND無法觸發觸發器。
如果添加會話觸發器爲您添加的事件使用觸發器,將會干擾應用程序。最後定義的觸發器將佔上風,另一個不會被執行。您需要添加的FIND觸發器不是經常使用的AFAIK,但在OpenEdge V8中,我們將它用於瀏覽器中的計算字段。 –
好點。還值得注意的是,觸發器可能無法完全按照您期望的方式觸發 - 例如。 IIRC(我可能不會)直到事務被提交時纔會看到create/update/delete觸發器,這可能與相關的CREATE或DELETE語句相距甚遠。 – GregT
它是一個商業應用程序?在Progress中有許多「衆所周知的」(至少爲進步人士所熟知的)商業應用程序,可能有人可以幫助您指導您。但首先他們需要知道應用程序是什麼。 –