Есть ли статический анализ кода инструменты для хранимые процедуры написано, в частности, в PL/SQL и T-SQL?
Какие-либо инструменты анализа статического кода для хранимых процедур?
Ответ 1
Для 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
Ответ 2
В Oracle есть несколько малоизвестных материалов.
Попробуйте это в версии 10g Release 2 или выше:
ALTER SESSION PLSQL_WARNINGS = 'ENABLE:ALL';
Затем скомпилируйте свой пакет PL/SQL (а не анонимный блок).
Ответ 3
Toad предлагает утилиту CodeXpert, чтобы статически проверять ваш код PL/SQL.
Утилита может либо сканировать файлы, либо напрямую подключаться к базе данных Oracle. Насколько я видел, работает только в Windows.
Ответ 4
Попробуйте Sql Code Guard. Он обеспечивает быстрый и всесторонний статический анализ для кода T-Sql, показывает сложность кода и зависимости объектов.
Ответ 5
Для PL/SQL Toad CodeXpert может быть расширен с помощью Sonar, инструментом с открытым исходным кодом для управления качеством кода через плагин.
Я думаю, что можно было бы написать плагин для T-SQL.
Ответ 6
Ближайшая вещь, о которой я знаю, это оценочный и фактический план запроса, доступные в SQL Server Management Studio, но я бы предположил, что похожее для другие механизмы SQL.
Ответ 7
Наша Поисковая система исходного кода SD - это инструмент для интерактивного поиска баз большого исходного кода на многих языках компьютера (включая PL/SQL), путем предварительного индексирования файлов исходного кода их токенами (идентификаторы, числа и т.д.). В качестве побочного эффекта этапа преиндексирования он вычисляет стандартные показатели: SLOC, Cyclomatic, Halstead,... для каждого файла и создает отчет. См. Сайт для примера.
Наш SD CloneDR - это инструмент для анализа больших баз кода для избыточного кода. Мы применили его к PL/SQL и увидели что-то вроде 45% кода, используемого в клонах. YMMV. CloneDR работает с большим разнообразием langauges; см. сайт для поиска проб клона на некоторых из этих других языков.
EDIT 10/4/2010:
Наш Исходный код Search Engine предназначен для быстрого поиска в больших кодах смешанных языков. Он успешно преиндексирует исходный код. В качестве побочного эффекта этапа индексации он вычисляет множество показателей, включая Cyclomatic и Halstead меры сложности.
Просто добавлено: не инструмент статического анализа, но один из них, как правило, интересует интересующее нас качество программного обеспечения: наш TestCoverage для хранимых процедур PLSQL.
Ответ 8
Не то, чтобы я знал. Regardng PL/SQL, так как Oracle не раскрывает большую часть своего механизма компиляции PL/SQL, трудно найти поддержку инструмента.
Самое большее, что я смог сделать, это запросить словарь данных, чтобы делать такие вещи, как сопоставлять зависимости пакета.
Ответ 9
В качестве дополнения к сообщению для T-SQL; VS2010 и VS2008 выпуски разработки баз данных имеют встроенные правила статического анализа. Они доступны пользователю, т.е. Вы можете написать свои собственные правила анализа на языке .net. Проект Neznayka с открытым исходным кодом поставляется с первоначальным набором из 22 правил и является полезной базой для того, чтобы вы сами вносили свой вклад.
По общему признанию, вы должны раскошелиться на Visual Studio и быть готовым разработать код db, используя VS, но недавние выпуски SSDT в качестве плагина для SSMS повышают вероятность того, что Microsoft может, если это будет иметь силу, сделать это, чтобы пользовательские правила были распределены в средах, которые используют проекты MS SQL ' бесплатно "для разработки кода базы данных.
Ссылка для Neznayka.
Или выполните поиск в Интернете.