【发布时间】:2010-10-06 14:18:21
【问题描述】:
有没有专门写在PL/SQL 和T-SQL 中的stored procedures 的static code analysis 工具?
【问题讨论】:
-
有一个免费工具叫 Manduka (manduka.tech),它同时支持 PL/SQL 和 T-SQL
标签: database tsql stored-procedures plsql static-analysis
有没有专门写在PL/SQL 和T-SQL 中的stored procedures 的static code analysis 工具?
【问题讨论】:
标签: database tsql stored-procedures plsql static-analysis
作为 T-SQL 帖子的后续内容; VS2010和VS2008数据库开发版自带静态分析规则。这些是用户可扩展的,即您可以用 .net 语言编写自己的分析规则。开源项目 Neznayka 带有一套初始的 22 条规则,并为您开始贡献自己的规则提供了一个有用的基础。
诚然,您必须购买 Visual Studio 并准备好使用以下工具开发 db 代码 VS 项目,但最近作为 SSMS 插件发布的 SSDT 提出了这样的前景,即如果微软有意愿这样做,它可能允许将用户编写的规则分发到使用 MS SQL 项目的环境中。免费”开发数据库代码。
Neznayka 的链接。
或者在网上搜索。
【讨论】:
免费试用Sql Code Guard。它为 T-Sql 代码提供快速和全面的静态分析,显示代码复杂性和对象依赖关系
【讨论】:
我们的SD Source Code Search Engine 是一种工具,可通过源代码文件的标记(标识符、数字等)对源代码文件进行预索引,从而有效地以多种计算机语言(包括 PL/SQL)交互式搜索大型源代码库。作为预索引步骤的副作用,它为每个文件计算标准指标:SLOC、Cyclomatic、Halstead ……并生成报告。有关示例,请参见该网站。
我们的SD CloneDR 是一种用于分析大型代码库以查找冗余代码的工具。我们已经将它应用于 PL/SQL,并且已经看到了 45% 的代码涉及克隆。 YMMV。 CloneDR 适用于多种语言;请参阅站点以了解在其他一些语言上运行的示例克隆检测。
2010 年 10 月 4 日编辑:
我们的Source Code Search Engine 旨在实现对混合语言的大型代码进行非常快速的搜索。它通过对源代码进行预索引来成功。作为索引步骤的副作用,它会计算各种指标,包括复杂性的 Cyclomatic 和 Halstead 度量。
刚刚补充:不是静态分析工具,而是对软件质量感兴趣的人普遍感兴趣的工具: 我们的TestCoverage for PLSQL stored procedures。
【讨论】:
对于 PL/SQL,Toad CodeXpert 可以是 extended with Sonar,这是一个通过插件管理代码质量的开源工具。
我想也可以为 T-SQL 编写一个插件。
【讨论】:
Toad 具有 CodeXpert 实用程序来静态检查您的 PL/SQL 代码。
该实用程序可以扫描文件或直接连接到 Oracle 数据库。据我所知,仅适用于 Windows。
【讨论】:
Oracle 内置了一些鲜为人知的东西。
在 10g 第 2 版或更高版本中试试这个:
ALTER SESSION PLSQL_WARNINGS = 'ENABLE:ALL';
然后编译你的 PL/SQL 包(不是匿名块)。
【讨论】:
对于 T-SQL,Microsoft 拥有 VS Team Suite 的数据库版本(尽管我相信它现在在 dev SKU 中)。此链接讨论为 T-SQL 编写自己的静态代码分析规则:http://blogs.msdn.com/gertd/archive/2009/01/01/creating-t-sql-static-code-analysis-rules.aspx
【讨论】:
我不知道。关于 PL/SQL,由于 Oracle 没有公开太多他们的 PL/SQL 编译引擎,因此很难找到工具支持。
我能做的最多就是查询数据字典来做一些事情,比如映射包依赖关系。
【讨论】:
我所知道的最接近的东西是SQL Server Management Studio 中可用的estimated and actual query plan 函数,但我猜similar 是用于other SQL 引擎的。
【讨论】: