powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запросы в Oracle через ODBC
6 сообщений из 6, страница 1 из 1
Запросы в Oracle через ODBC
    #40012144
wladwolkow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
На линуксе стоит такой софт:
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64
oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64
oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86_64
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64
Данный софт поставлен на Zabbix proxy для мониторинга некоторых параметров базы Оракл, например, таким запросом мы узнаем у Оракл размер таблицы:
SELECT tablespace_size*8192 AS ts_size FROM dba_tablesapce_usage_metrics WHERE tablespace_name='AIS_DB'
SELECT tablespace_size*8192 AS ts_size FROM dba_tablesapce_usage_metrics WHERE tablespace_name='ALK_DATA'
и подобных запросов масса! Табличек в базе десятки, и каждая в определенный момент времени измеряется этим запросом.
Также есть такие запросы:
SELECT used_space*8192 AS used_space FROM dba_tablespace_usage_metrics WHERE tablespace_name='AIS_DB'
SELECT used_space*8192 AS used_space FROM dba_tablespace_usage_metrics WHERE tablespace_name='ALK_DATA'

В общем два вида запросов, измеряющих размер табличного пространства и использование табличного пространства. Таблиц в базе Оракл около 20-30 штук, соответсвтенно по два запроса на каждую таблицу. Получается 40-60 SQL запросов в момент времени надо делать, периодичность раз в 10 минут.

Возникла проблема, данные запросы выполняются заббиксом и нагружают заббикс поллеры (сборщики показаний мониторинга) таким образом, что если при выполнении запросов в Оракл возникает долгий запрос, который в итоге отваливается по таймауту, то другие запросы не выполняются.
Поставил себе задачу: выполнить запрос в Оракл через ODBC руками. Какие у меня есть варианты это сделать с учётом тех инструментов, которые есть?

Также В последнем пакете instantclient basic есть такие утилиты genezi, adrci. Пожалуйста, уточните можно ли их как-то применять для подключения к Oracle, чтобы поделать запросы и померять время их выполнения?
...
Рейтинг: 0 / 0
Запросы в Oracle через ODBC
    #40012145
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а просто забрать одним запросом всю dba_tablespace_usage_metrics, и уже вне бд разложить на составляющие, заббикс не умеет?
...
Рейтинг: 0 / 0
Запросы в Oracle через ODBC
    #40012162
K790
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSELECT tablespace_size*8192
авторSELECT used_space*8192
объединить в один, зачем каждый раз читать таблицу?
...
Рейтинг: 0 / 0
Запросы в Oracle через ODBC
    #40012198
wladwolkow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
K790
авторSELECT tablespace_size*8192

авторSELECT used_space*8192
объединить в один, зачем каждый раз читать таблицу?

Дело в том, что нужно рисовать график - две кривые линии размер таблицы, использование таблицы - из значений, получаемых запросами, в момент времени. Если объединить два запроса в один, то результатом объединённого запроса будут два значения, на основе которых не получится строить два графика, которые при анализе можно сравнивать. Поэтому объединить два запроса в один с точки зрения мониторинга тут не требуется.

Цель мониторинга: следить за размером таблицы и ее использованием в момент времени и рисовать график для визуализации и удобного отслеживания изменений размера таблицы и её использования в разные моменты времени.

Но вопрос не в оптимизации запроса, а: 1. как выполнить из линукса вручную запрос SQL в базу Оракл через ODBC коннектор и померять время выполнения запроса? 2. утилитами genezi, adrci можно выполнить эту задачу - выполнить запрос через ODBC коннектор и померять время?
...
Рейтинг: 0 / 0
Запросы в Oracle через ODBC
    #40012207
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любой запрос к любому ODBC источнику можно выполнить в штатной ODBC утилите isql.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Запросы в Oracle через ODBC
    #40012290
wladwolkow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ на вопрос как выполнять запросы через ODBC коннектор получен.

А по проблеме, описанной в первом посте, решение такое - нужно переписывать SQL запрос на запрос, вида:
select case d.database_role when 'PRIMARY' then ......
Сама база была сконфигурирована так, что нужно проверять является ли база PRIMARY.

Заббикс направлял неверные запросы, от этого расла очередь из запросов с ожиданием ответа, нагружались заббикс поллеры и выдавали в итоге высокое потребление ресурсов заббикс прокси.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запросы в Oracle через ODBC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]