|
Запросы в Oracle через ODBC
|
|||
---|---|---|---|
#18+
Добрый день! На линуксе стоит такой софт: 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, чтобы поделать запросы и померять время их выполнения? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 12:14 |
|
Запросы в Oracle через ODBC
|
|||
---|---|---|---|
#18+
а просто забрать одним запросом всю dba_tablespace_usage_metrics, и уже вне бд разложить на составляющие, заббикс не умеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 12:18 |
|
Запросы в Oracle через ODBC
|
|||
---|---|---|---|
#18+
авторSELECT tablespace_size*8192 авторSELECT used_space*8192 объединить в один, зачем каждый раз читать таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 13:11 |
|
Запросы в Oracle через ODBC
|
|||
---|---|---|---|
#18+
K790 авторSELECT tablespace_size*8192 авторSELECT used_space*8192 объединить в один, зачем каждый раз читать таблицу? Дело в том, что нужно рисовать график - две кривые линии размер таблицы, использование таблицы - из значений, получаемых запросами, в момент времени. Если объединить два запроса в один, то результатом объединённого запроса будут два значения, на основе которых не получится строить два графика, которые при анализе можно сравнивать. Поэтому объединить два запроса в один с точки зрения мониторинга тут не требуется. Цель мониторинга: следить за размером таблицы и ее использованием в момент времени и рисовать график для визуализации и удобного отслеживания изменений размера таблицы и её использования в разные моменты времени. Но вопрос не в оптимизации запроса, а: 1. как выполнить из линукса вручную запрос SQL в базу Оракл через ODBC коннектор и померять время выполнения запроса? 2. утилитами genezi, adrci можно выполнить эту задачу - выполнить запрос через ODBC коннектор и померять время? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 14:12 |
|
Запросы в Oracle через ODBC
|
|||
---|---|---|---|
#18+
Любой запрос к любому ODBC источнику можно выполнить в штатной ODBC утилите isql. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 14:27 |
|
Запросы в Oracle через ODBC
|
|||
---|---|---|---|
#18+
Ответ на вопрос как выполнять запросы через ODBC коннектор получен. А по проблеме, описанной в первом посте, решение такое - нужно переписывать SQL запрос на запрос, вида: select case d.database_role when 'PRIMARY' then ...... Сама база была сконфигурирована так, что нужно проверять является ли база PRIMARY. Заббикс направлял неверные запросы, от этого расла очередь из запросов с ожиданием ответа, нагружались заббикс поллеры и выдавали в итоге высокое потребление ресурсов заббикс прокси. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 17:02 |
|
|
start [/forum/topic.php?fid=52&msg=40012144&tid=1880768]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
1ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 300ms |
total: | 468ms |
0 / 0 |