2009-02-10 7 views

ответ

7

Для 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

+1

. Просматривайте http://msdn.microsoft.com/en-us/library/dd172133.aspx, http://msdn.microsoft.com. /en-us/library/dd193244.aspx – suyasha

+0

Я бы тоже принял этот ответ. Просто так, потому что мой вопрос состоит из двух частей (один для PLSQL и другого для TSQL), есть два отдельных ответа, но stackoverflow позволяет принимать только один. – suyasha

1

Не об этом я знаю. Regardng PL/SQL, поскольку Oracle не раскрывает большую часть своего механизма компиляции PL/SQL, трудно найти поддержку инструмента.

Самое большее, что я смог сделать, это запросить словарь данных, чтобы делать такие вещи, как сопоставление зависимостей пакета.

+2

нужно иметь еще один движок, который может обрабатывать PL/SQL. См. Http://www.semanticdesigns.com/Products/LanguageTools/PLSQLTools.html –

6

Oracle имеет некоторые малоизвестный материал, построенный в

Попробуйте это в 10g Release 2 или выше:

ALTER SESSION PLSQL_WARNINGS = 'ENABLE:ALL'; 

Затем скомпилируйте свой PL/SQL-пакет (а не анонимный блок).

4

Toad имеет утилиту CodeXpert, чтобы статически проверять ваш код PL/SQL.

Утилита может либо сканировать файлы, либо напрямую подключаться к базе данных Oracle. Насколько я видел, работает только в Windows.

3

Для PL/SQL Toad CodeXpert может быть extended with Sonar, инструментом с открытым исходным кодом для управления качеством кода через плагин.

Я думаю, можно было бы написать плагин для T-SQL.

2

Наш 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.

0

В качестве дополнения к сообщению для T-SQL; VS2010 и VS2008 выпуски разработки баз данных имеют встроенные правила статического анализа. Они доступны пользователю, т. Е. Вы можете написать свои собственные правила анализа на языке .net. Проект Neznayka с открытым исходным кодом поставляется с первоначальным набором из 22 правил и является полезной базой для того, чтобы вы сами вносили свой вклад.

Понятно, что вы должны раскошелиться на Visual Studio и быть готовым разработать код db с использованием проектов VSA , но последние выпуски SSDT в качестве плагина для SSMS поднимают перспективу, что Microsoft может, если она имеет желание -power для этого, чтобы пользовательские правила правил были распределены в средах, которые используют проекты MS SQL «бесплатно» для разработки кода базы данных.

Ссылка для Neznayka.

Или искать в Интернете.

4

Попробуйте бесплатно Sql Code Guard. Он обеспечивает быстрый и всеобъемлющий статический анализ для кода T-Sql, показывает сложность кода и зависимости объектов.