Просмотр против ODBC-запроса - PullRequest
0 голосов
/ 09 февраля 2010

Я проектирую базу данных в PostgreSQL на выделенном сервере. Я хочу, чтобы некоторые сложные запросы выполнялись часто, а результаты были доступны для клиентов ODBC / JDBC, таких как MS-Access или программное обеспечение для создания отчетов.

На мой взгляд, у меня есть возможность либо определить VIEW в PostgreSQL и импортировать его с использованием ODBC, либо определить запрос в клиенте ODBC и импортировать базовые таблицы.

Что лучше? Есть ли другие варианты, которые мне не хватает?

Ответы [ 2 ]

1 голос
/ 09 февраля 2010

Вы говорите, что у вас есть сложные запросы, которые создают вывод, который вы хотите использовать для целей отчетности.

Накопления, агрегации и т. Д. Выполняются и хранятся в хранилище данных практически так же, как вы описали.

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

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

1 голос
/ 09 февраля 2010

Я не уверен, что вы подразумеваете под "импорт". Представление - это, по сути, предопределенный запрос, из которого вы можете выбирать данные так же, как и из таблицы. Когда вы выполняете запрос SELECT, независимо от того, обращаетесь ли вы к таблицам данных напрямую или через представление, вам возвращаются только результаты запроса.

Если вам нужно выполнить один и тот же запрос от разных клиентов, было бы неплохо определить представление для этого запроса.

Делись и наслаждайся.

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