Есть ли static code analysis tools for stored procedures, предназначенные, в частности, в PL/SQL и T-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
. Просматривайте http://msdn.microsoft.com/en-us/library/dd172133.aspx, http://msdn.microsoft.com. /en-us/library/dd193244.aspx – suyasha
Я бы тоже принял этот ответ. Просто так, потому что мой вопрос состоит из двух частей (один для PLSQL и другого для TSQL), есть два отдельных ответа, но stackoverflow позволяет принимать только один. – suyasha
Ближе всего, что я знаю, является estimated and actual query plan доступной в SQL Server Management Studio функции, но я предполагаю, что есть similar для other SQL двигателей.
Не об этом я знаю. Regardng PL/SQL, поскольку Oracle не раскрывает большую часть своего механизма компиляции PL/SQL, трудно найти поддержку инструмента.
Самое большее, что я смог сделать, это запросить словарь данных, чтобы делать такие вещи, как сопоставление зависимостей пакета.
нужно иметь еще один движок, который может обрабатывать PL/SQL. См. Http://www.semanticdesigns.com/Products/LanguageTools/PLSQLTools.html –
Oracle имеет некоторые малоизвестный материал, построенный в
Попробуйте это в 10g Release 2 или выше:
ALTER SESSION PLSQL_WARNINGS = 'ENABLE:ALL';
Затем скомпилируйте свой PL/SQL-пакет (а не анонимный блок).
Toad имеет утилиту CodeXpert, чтобы статически проверять ваш код PL/SQL.
Утилита может либо сканировать файлы, либо напрямую подключаться к базе данных Oracle. Насколько я видел, работает только в Windows.
Для PL/SQL Toad CodeXpert может быть extended with Sonar, инструментом с открытым исходным кодом для управления качеством кода через плагин.
Я думаю, можно было бы написать плагин для T-SQL.
Наш SD Source Code Search Engine - это инструмент для интерактивного поиска баз большого исходного кода на многих языках компьютера (включая PL/SQL) эффективно, путем предварительного индексирования файлов исходного кода их токенами (идентификаторы, номера и т. Д.). В качестве побочного эффекта этапа преиндексирования он вычисляет стандартные показатели: SLOC, Cyclomatic, Halstead, ... для каждого файла и создает отчет. См. Сайт для примера.
Наш SD CloneDR - это инструмент для анализа больших кодовых баз для избыточного кода. Мы применили его к PL/SQL и увидели что-то вроде 45% кода, используемого в клонах. YMMV. CloneDR работает с большим разнообразием langauges; см. сайт для проб обнаружения клонирования образцов на некоторых из этих других языков.
EDIT 10/4/2010:
Нашей Source Code Search Engine предназначен для того, чтобы очень быстрого поиска через большие коды смешанных языков. Он успешно преиндексирует исходный код. В качестве побочного эффекта этапа индексирования он вычисляет множество показателей, включая Cyclomatic и Halstead меры сложности.
Просто добавлено: не инструмент статического анализа, но один из них представляет интерес для людей, интересующихся качеством программного обеспечения: наш TestCoverage for PLSQL stored procedures.
В качестве дополнения к сообщению для T-SQL; VS2010 и VS2008 выпуски разработки баз данных имеют встроенные правила статического анализа. Они доступны пользователю, т. Е. Вы можете написать свои собственные правила анализа на языке .net. Проект Neznayka с открытым исходным кодом поставляется с первоначальным набором из 22 правил и является полезной базой для того, чтобы вы сами вносили свой вклад.
Понятно, что вы должны раскошелиться на Visual Studio и быть готовым разработать код db с использованием проектов VSA , но последние выпуски SSDT в качестве плагина для SSMS поднимают перспективу, что Microsoft может, если она имеет желание -power для этого, чтобы пользовательские правила правил были распределены в средах, которые используют проекты MS SQL «бесплатно» для разработки кода базы данных.
Ссылка для Neznayka.
Или искать в Интернете.
Попробуйте бесплатно Sql Code Guard. Он обеспечивает быстрый и всеобъемлющий статический анализ для кода T-Sql, показывает сложность кода и зависимости объектов.
Существует бесплатный вызов инструмента Manduka (http://manduka.tech), который поддерживает как PL/SQL, так и T-SQL –