Каковы ваши лучшие практики для обеспечения правильности отчетов из SQL? - PullRequest
6 голосов
/ 17 марта 2010

Часть моей работы включает создание отчетов и данных из SQL Server для использования в качестве информации для принятия решения.Большая часть данных агрегируется, например, инвентаризация, итоги продаж и затрат по отделам и другие измерения.

Когда я создаю отчеты, а точнее, я разрабатываю SELECT для извлечения агрегированных данных изВ базе данных OLTP я беспокоюсь о том, что ошибаюсь, например, JOIN или GROUP BY, возвращая неверные результаты.

Я пытаюсь использовать некоторые «лучшие практики», чтобы предотвратить «генерацию» неправильных чисел:

  • При создании набора агрегированных данных всегда анализируйте этот набор данных без агрегирования и ищите очевидные ошибки.
  • Экспортируйте разобранный набор данных в Excel и сравните SUM (), AVG () и т. д. из SQL Server и Excel.
  • Вовлеките людей, которые будут использовать информацию, и попросите проверки (попросите людей помочь выявить ошибки в числах).
  • Никогда не развертыватьэти вещи во второй половине дня - когда это возможно, попробуйте взглянуть на T-SQL на следующее утро с обновленным умом.У меня было много ошибок, исправленных с помощью этой простой процедуры.

Даже с этими процедурами я всегда беспокоюсь о цифрах.

Каковы ваши лучшие практики для обеспечения правильности отчетов?

Ответы [ 3 ]

2 голосов
/ 17 марта 2010

рассмотрели ли вы заполнение таблиц тестовыми данными, которые дают известные результаты, и сравните результаты запроса с ожидаемыми результатами.

1 голос
/ 17 марта 2010
  • Подписано, письменно

Я обнаружил, что одним из лучших методов является то, что и читатель / клиент, и разработчики находятся на одной (задокументированной) странице. Таким образом, когда появляются таинственные числа (и они появляются), я могу указать на спецификацию в письменном виде и сказать: «Вот почему вы видите это число. Хотите, чтобы оно было другим?

  • Тест, тест, тест

Для серьезно сложных отчетов мы проходили тестовые данные вверх и вниз с клиентом, пока все цифры не были правильными, и клиент не был удовлетворен.

  • Кромочные чехлы

Мы обнаружили серьезно сложный случай в нашей системе отчетности, который перевернул все с ног на голову (с нашей стороны). Что если пользователь генерирует отчет (скажем, на конец 2009 года), вводит данные за новый год, а затем возвращается, чтобы сгенерировать тот же отчет? Данные изменились, но этот отчет не должен. Размышление и решение этих случаев может спасти много душевной боли.

0 голосов
/ 17 марта 2010

Напишите несколько автоматических тестов.

У нас довольно много отчетов служб отчетов - мы тестируем их с помощью Selenium. Мы используем страницу тестовых данных, чтобы скопировать некоторые известные данные в пустую базу данных, затем запустим отчет и подтвердим, что числа соответствуют ожидаемым.

Сборки запускаются каждый раз, когда мы регистрируемся, поэтому мы знаем, что не сделали ничего слишком глупого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...