2012-07-05 41 views
0

您好我想知道如何查找db2中的所有空表。我正在考慮列出每個模式的所有表格(即「模式列表表格」),然後做一個count(*)查詢,檢查哪些給出了0,但這看起來很麻煩和髒兮兮,因爲我有編寫一個shell腳本來解析表名並循環遍歷每一個,運行count SQL。找到DB2中的所有空表

有沒有更快的方法?

回答

0

另一種選擇是查看數據字典或元數據表,如果正確收集了適當的統計信息,這些表將具有此信息。在oracle中,這將是user/all/dba_tables數據字典視圖。

看起來像D2中的SYSCAT.TABLES目錄視圖提供了類似的目的,但列值也可能具有-1,-2,在這種情況下它們具有不同的值。檢查這個鏈接。

SYSCAT.TABLES catalog view : DB2

的COUNT(*)仍可能更準確,因爲統計數據收集在大多數情況下並不能保證100%的準確性。

+1

雖然使用COUNT(*)'時要小心交易 - 您可能會得到'舊'結果。 – 2012-07-06 15:35:55

+0

當然。但是,如果有這麼多的交易正在進行,統計數據也會過時。 – 2012-07-06 15:51:48