在過去幾年中,在其他Informix相關論壇上,這個問題已被多次提出,並且沒有真正令人滿意的答案。
你可能熟悉的一些變種:
SELECT hex(i.ti_partnum) partition,
trim(n.dbsname) || ":" || trim(n.owner) || ":" || trim(n.tabname) table,
i.ti_nptotal allocated_pages
FROM sysmaster:systabnames n, sysmaster:systabinfo i
WHERE ( sysmaster:bitval(i.ti_flags, "0x0020") = 1
OR sysmaster:bitval(i.ti_flags, "0x0040") = 1
OR sysmaster:bitval(i.ti_flags, "0x0080") = 1
)
AND i.ti_partnum = n.partnum
AND i.ti_partnum > 0
應使用JOIN符號作爲被改寫:
SELECT hex(i.ti_partnum) partition,
trim(n.dbsname) || ":" || trim(n.owner) || ":" || trim(n.tabname) table,
i.ti_nptotal allocated_pages
FROM sysmaster:systabnames n
JOIN sysmaster:systabinfo i
ON i.ti_partnum = n.partnum
WHERE ( sysmaster:bitval(i.ti_flags, "0x0020") = 1
OR sysmaster:bitval(i.ti_flags, "0x0040") = 1
OR sysmaster:bitval(i.ti_flags, "0x0080") = 1
)
AND i.ti_partnum > 0
但這只是給出了你已經知道的信息。
我確實發現使用onstat -g opn
報告的技術可檢測以某種方式通過onstat -u
連接回會話的開放分區。不幸的是,onstat -g opn
報告的數據不能從SMI和sysmaster獲得,因此這將屬於「ON-Stat輸出的腳本分析」類別。如果你想要我從一個晦澀的電子郵件帳戶的檔案(大約2007年,IIRC)中挖掘出詳細信息,請發表評論。
感謝喬納森,我知道遲早我會從你那裏得到明確的答案:-)我已經擁有的SQL看起來非常像你在那裏的東西,我想我已經把所有的新聞組檔案爲非答案。它似乎是SMI的一個明顯的遺漏,你不覺得嗎?總之,現在不用擔心挖掘腳本。謝謝你的幫助。 – RET