Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Тоу Д. -> "Настройка SQL. Для профессионалов" -> 140

Настройка SQL. Для профессионалов - Тоу Д.

Тоу Д. Настройка SQL. Для профессионалов — СПб.: Питер, 2004. — 333 c.
ISBN 5-94723-959-0
Скачать (прямая ссылка): nastroykasqldlyaprof2004.djvu
Предыдущая << 1 .. 134 135 136 137 138 139 < 140 > 141 142 143 144 145 146 .. 161 >> Следующая


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

¦ Какова причина создания отчета?

¦ Как инициируется создание отчета?

¦ Почему производительность отчета стала проблемой?

¦ Информацию какого типа читатель извлекает из отчета?

Ответы на все эти вопросы влияют на получение лучшего ответа на последний вопрос — как повысить производительность отчета?

Причины создания больших отчетов

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

¦ У отчета множество читателей, каждый из которых заинтересован в разных поднаборах данных.

Никто не читает отчет от корки до корки, но любая данная часть отчета может быть интересна, по меньшей мере, одному из читателей. Цели, которые преследуют такие отчеты, лучше достигать при помощи нескольких небольших отчетов. Если необходимо, они могут выполняться параллельно, поэтому системе становится проще считать все необходимые данные быстрее. Также каждый отчет может выполняться настолько часто, как это нужно
Запросы, которые возвращают слишком много данных

285

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

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

Необходимость отвечать на подобные вопросы по мере их возникновения намного лучше обслуживается оперативными прикладными запросами к базе данных. Структура огромного однородного отчета никогда не сможет предложить настолько же удобный путь к данным, как хорошо построенное приложение. Если вы используете отчеты для быстрого доступа к данным вместо конкретных запросов, то упускаете все преимущества, которые предлагает реляционная база данных. Так как специальные оперативные запросы на месте целого огромного отчета затронут только небольшой поднабор данных, необходимых пользователю, оперативное решение потребует намного меньше операций логического и физического ввода-вывода.

¦ Используется только поднабор данных запроса.

В этом случае решение очевидно и чрезвычайно выгодно. Просто исключите из запроса и отчета те строки, которые никогда не используются. Там, где отчет выводит меньше строк, чем возвращает запрос, добавьте фильтры, чтобы пропустить только необходимые отчету строки. Если вы сокращаете сам отчет, добавьте фильтры в запросы, обслуживающие сокращенный отчет, и настройте запросы так, чтобы они никогда не затрагивали ненужные данные. Особый случай, когда требуется лишь поднабор данных, возникает, когда конечный пользователь запрашивает только суммарную информацию (то есть агрегации) из отчета, содержащего и детали, и агрегатные данные. В этом случае исключите детали и из отчета, и из запросов к базе данных, и обратитесь к разделу «Агрегация множества деталей» за дальнейшими решениями.

¦ Отчет необходим только по правовым причинам, а не потому, что кто-либо ког-да-либо прочтет его.

Такое оправдание существования отчета вызывает несколько вопросов. Действительно ли правовые нормы все так же требуют его создания, или же требования давно упразднены, а вы выдаете отчет лишь по привычке? Действительно ли он нужен так часто, как вы его создаете? Если огромные отчеты создаются изредка, то маловероятно, что они превратятся в проблему производительности или пропускной способности, поэтому крайне необходимо выдавать их как можно реже, если не можете совсем избавиться от отчетов. Действительно ли закон требует данных в форме этого отчета, или же будет достаточно предоставлять доступ к данным в иной форме? Часто требования к сохранению данных не указывают, в какой форме они должны храниться. Сама база данных или ее резервные копии могут вполне удовлетворять требованиям без прикладных отчетов. Если отчет необходим только по правовым причинам, то его, вероятно, можно выполнять в свободные часы, когда нагрузка не представляет проблемы.
286

10. Решения сложных проблем

ПРИМЕЧАНИЕ------------------------------------------------------------------------

Однажды из третьих рук до меня дошла история об отчете, выдаваемом по правовым причинам, который с самого начала работал неправильно: он заполнял множество страниц содержимым системной памяти при каждом запуске. Так как никто на самом деле не использовал этот отчет, то никто и не заметил, что он не работал. Однако все бумажные версии системной памяти были старательно сохранены, а работник архива исправно ставил галочку в форме, указывающей, что формальное требование создать и сохранить отчет в архиве было выполнено. При перестройке системы, наконец, было обнаружено, что отчет был неисправен, и его удалили. Команда, занимавшаяся перестройкой, сделала вывод, что на самом деле отчет никогда не был нужен. Однако даже когда человеку, ответственному за выставление галочки на старой форме о создании и архивировании отчета, сказали о том, что отчет никогда не работал и не создавался, он потребовал, чтобы отчет вернули на место в старой, неисправной форме.
Предыдущая << 1 .. 134 135 136 137 138 139 < 140 > 141 142 143 144 145 146 .. 161 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100