數據庫是Oracle。我們的目標是在代碼,執行狀態檢查:低影響端到端數據庫連接和查詢測試
- 穩健
- 端至端(健康的連接並不意味着健康的對象,即與脫機表視圖)
- 創建最小開銷調用應用程序
就夠了這些不同的要求,我想出了以下查詢:
SELECT NULL FROM VIEW_NAME WHERE NULL IS NOT NULL
因此,讓我們來分析一下:
SELECT NULL
是企圖「以小博大」 SQL result caching通過顯式指定的值。FROM VIEW_NAME
將失敗,如果VIEW_NAME不存在於數據庫中(即端到端)。WHERE NULL IS NOT NULL
是避免表掃描,返回0的記錄,企圖等
任何想法,改進建議等,將不勝感激。我特別想知道這個查詢或方法是否有任何可以想象的問題。
您是否能夠爲每個視圖和表格運行此操作,以防萬一脫機或丟失?將'SELECT NULL FROM DUAL'用於連接,並且可能查看數據字典以查看脫機/丟失/無效的問題,有什麼優勢? –
@AlexPoole爲了您的理解和澄清,這可能是對特定應用程序對單個視圖的依賴。在這種情況下,其他視圖是否脫機並不重要,但對於應用程序本身而言,這個目標視圖的大部分都是無法訪問的。它並非真正用於對每個視圖/表進行系統範圍的檢查等。另外,針對視圖(例如'FROM VIEW_NAME')實際上是端到端的,因爲'SELECT NULL FROM DUAL'不會測試所述視圖的可訪問性。然而,我還沒有看過數據字典。 – rdev5