数据库是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