2015-06-25 53 views
0

是否有一個進度分析工具,允許我查看針對OpenEdge數據庫執行的查詢?如何剖析opensge數據庫?

我們正在從OpenEdge數據庫遷移到SQL數據庫。爲了正確映射數據,我們希望在OpenEdge數據庫上運行某些應用程序報告,並查看正在執行哪些數據庫查詢以檢索數據。

這是可能的某種進度分析工具(一個SQL Server分析)?最好是免費的...

+0

它是一個商業應用程序?在Progress中有許多「衆所周知的」(至少爲進步人士所熟知的)商業應用程序,可能有人可以幫助您指導您。但首先他們需要知道應用程序是什麼。 –

回答

2

進度是面向記錄的,不像SQL那樣定位,所以你的報告不是一個單一的查詢或一組查詢,它更可能是大量的記錄查找與你想要的考慮類似查詢的操作。

根據您運行的版本,有一種方法可以向客戶端發送信號以查看其當前正在執行的操作,但這樣做幾乎肯定會給您提供足夠的信息來辨別正在進行的操作「引擎蓋下。」

長話短說,您的選擇是得到Dataserver product,這樣您可以將Progress客戶端附加到SQL數據庫 - 這將使您能夠使用SQL數據庫,而不會丟失Progress功能。第二種選擇是獲取程序源代碼的副本,以瞭解報告的結構。

+0

感謝蒂姆,我被告知我需要重新編譯ABL才能通過數據服務器對SQL後端運行 - 這是正確的嗎? – Drammy

+0

我對Dataserver產品沒有經驗,所以我不能說權威。我的_guess_會是你需要重新編譯,如果DS下的表結構不同於使用Progress db連接看到的表結構。 –

2

Tim很正確 - 沒有源代碼,查看查詢不太可能爲您提供很多見解。

無論如何,有一些工具和功能可以提供有關查詢的信息。也許你的目的最有用的是指定類似於:

-logentrytypes QryInfo -logginglevel 3 -clientlog "mylog.log" 

在會話啓動。

+0

我發現我需要將-logginglevel降到2,否則程序崩潰。有任何想法嗎? – Drammy

+0

崩潰通常有與它們相關的錯誤消息。這些錯誤消息常常指出解決問題的方式。由於我不知道你遇到了什麼錯誤,也不知道通過降低日誌記錄級別來解決任何經驗豐富的錯誤(除了磁盤空間不足 - 但這似乎太明顯了),我真的沒有什麼東西可以提供在解決方案方面。 –

+0

當然,沒有細節可以幫助我解決問題。別擔心。 – Drammy

0

您可以使用會話觸發器來識別幾乎任何程序完成的任何事情,而無需修改或訪問這些程序的來源。設置這可能是更多的工作比爲你的目的值得。我們有一個圍繞這個想法構建的測試系統。一個很大的缺陷:CAN-FIND無法觸發觸發器。

+0

如果添加會話觸發器爲您添加的事件使用觸發器,將會干擾應用程序。最後定義的觸發器將佔上風,另一個不會被執行。您需要添加的FIND觸發器不是經常使用的AFAIK,但在OpenEdge V8中,我們將它用於瀏覽器中的計算字段。 –

+0

好點。還值得注意的是,觸發器可能無法完全按照您期望的方式觸發 - 例如。 IIRC(我可能不會)直到事務被提交時纔會看到create/update/delete觸發器,這可能與相關的CREATE或DELETE語句相距甚遠。 – GregT