powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL*Net message/data to/from client
15 сообщений из 15, страница 1 из 1
SQL*Net message/data to/from client
    #39529394
Добрый день всем гуру.

Возник вот такой вопрос. Есть файлы, которые используют PLSExtproc для загрузки файлов на диск. Есть две базы, одна тестовая, другая основная. Сервера одинаковые, разница лишь в количестве ОЗУ, на тесте меньше. Так вот на тестовой схеме программисты подкрутили запросы и загрузка 200 файлов стала делаться быстро, примерно секунд 10. Такие манипуляции на основной схеме не увенчались успехом. 200 файлов грузятся очень медленно, причем возникаю вот такие ожидания SQL*Net message/data to/from client. В какую сторону смотреть? Пробовал создать файл protocol.ora, в котором прописал параметр tcp.nodelay = YES. Сказали, что стало работать медленнее, но это субъективное мнение.
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529425
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загрузка сети какая, какой delay между серверами загрузки и файловыми серверами

и да
автор...
Есть файлы, которые используют PLSExtproc для загрузки файлов на диск
...

переведи :)
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529428
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если FROM CLIENT, тогда официант (SQL*NET) ждет пока клиент копается в меню (или хавает что официант принес) чтобы передать повару(базе) заказ (следующий заказ) клиента. A вот TO CLIENT это когда официант (SQL*NET) очень долго несет уже приготовленное поваром (базой) блюдо клиенту.

SY.
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529495
Vadim Lejnin,

Используется внешняя процедура.
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529500
Vadim LejninЗагрузка сети какая, какой delay между серверами загрузки и файловыми серверами

А как этот delay померить? смотрел netstat -i пропусков пакетов нет. В сетевых технологиях не шибко силен...
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529520
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Лунев,

То что используется внешняя процедура я понял, вопрос, куда, как и откуда грузятся файлы.
Судя по вашему сообщению, Вы внешней процедурой загружаете файлы с файловой системы в БД?
Это так?

Если да, Вопрос следующий:
где физически находятся файлы для загрузки? случаем не на сетевом диске?
ну и насколько загружена файловая система с которой Вы грузите файлы.

нагрузку системы мониторили?
Чем отличаются для данной подсистемы стенд и прод?

Ожидания может возникнуть как из-за дисковых задержек (extproc уже передала по TNS порцию в базу, а следующая порция еще не считалась, так и из за задержек сети - чтение ведется с сетевого диска, задержки с передачей по TNS. Такая задержка может возникнуть при значительном ping delay и больших пакетах. Прочитай что такой BDP
например тут:
Oracle Net Services 12c Best Practices for Database Performance and Scalability - секция Network Acceleration
Для передачи больших пакетов при большом delay ping, (тот же RMAN, STANDBY транспорт), обычно поднимают отдельный listener с увеличенным размером буфера для передачи.


p.s. Принято более подробно описывать проблему:
Что за ОС, точная версия СУБД, какие настройки TNS
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529521
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Лунев,
ping remote_server
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529546
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529547
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Андрей Лунев,

Покажи сырые трейсы
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529915
Проблема решена. Добавил настройки в sqlnet.ora на стороне сервера и клиента.
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529918
Спасибо всем за помощь в решении задачи.
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39529955
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ЛуневПроблема решена. Добавил настройки в sqlnet.ora на стороне сервера и клиента.
Андрей, в форуме принято раскрывать решение проблемы, чтобы, те кто словят аналогичную проблему могли самостоятельно ее решить
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39530262
Vadim LejninАндрей ЛуневПроблема решена. Добавил настройки в sqlnet.ora на стороне сервера и клиента.
Андрей, в форуме принято раскрывать решение проблемы, чтобы, те кто словят аналогичную проблему могли самостоятельно ее решить

Без проблем. Просто, часто вижу здесь, что пишут "спасибо за помощь, я все решил", а решения не написано. Вот и я по этому же так написал. А так мне не жалко, пользуйтесь, может кому-то действительно поможет.
На стороне сервера и клиента в sqlnet.ora добавил вот эти строки:
Код: plsql
1.
2.
3.
DEFAULT_SDU_SIZE=32767
RECV_BUF_SIZE=65536
SEND_BUF_SIZE=65536



Плюсом почитал вот эти вещи:
https://docs.oracle.com/cd/B19306_01/network.102/b14212/performance.htm
https://sites.google.com/site/embtdbo/wait-event-documentation/oracle-network-waits#TOC-SDU

В listener.ora и tnsnames.ora не стал добавлять, потому что пришлось бы перезапускать листенер, чего не хотелось. Но можно было и так сделать, поэтому ограничился первым вариантом.

Еще раз всем спасибо за помощь и направление в нужное русло...
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39530339
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ЛуневVadim Lejninпропущено...

Андрей, в форуме принято раскрывать решение проблемы, чтобы, те кто словят аналогичную проблему могли самостоятельно ее решить

Без проблем. Просто, часто вижу здесь, что пишут "спасибо за помощь, я все решил", а решения не написано. Вот и я по этому же так написал. А так мне не жалко, пользуйтесь, может кому-то действительно поможет.
На стороне сервера и клиента в sqlnet.ora добавил вот эти строки:
Код: plsql
1.
2.
3.
DEFAULT_SDU_SIZE=32767
RECV_BUF_SIZE=65536
SEND_BUF_SIZE=65536


...
В listener.ora и tnsnames.ora не стал добавлять, потому что пришлось бы перезапускать листенер, чего не хотелось. Но можно было и так сделать, поэтому ограничился первым вариантом.
...


Андрей, все же крутить такие параметры для всех клиентов, не самые верное решение, бо это может вызвать задержки для задач, которые периодически обмениваются только маленькими, короткими пакетами, например Forms. Особенно, если они работают по медленным линиям.
Плюс, при передаче больших данных с сервера на клиент, возникнет перегруз буферов TCP клиента, у которого не настроены большие буферы, что приведёт к ожиданиям сети при таких операциях.
Более адекватным решением, КМК, было бы все же поднятие выделенного listener на другом порту и настройка специальных TNS Alias, только для тех соединений, которые требуют этого.
Единственно, Вам нужно будет продумать, нужна ли динамическая регистрация служб на нем. Обычно, этого не требуется, для служебных целей как правило используются статическая регистрация, но в принципе это тоже можно настроить.
Основной listener, при этом можно совсем не трогать, и работа с ним останется такой же, как и раньше.

Дополнительно, два listener, позволят ограничить соединения от клиентов, например при создании standby, если остановить основной listener.
Минус в том, что придётся контролировать
...
Рейтинг: 0 / 0
SQL*Net message/data to/from client
    #39530340
Vadim LejninАндрей Луневпропущено...


Без проблем. Просто, часто вижу здесь, что пишут "спасибо за помощь, я все решил", а решения не написано. Вот и я по этому же так написал. А так мне не жалко, пользуйтесь, может кому-то действительно поможет.
На стороне сервера и клиента в sqlnet.ora добавил вот эти строки:
Код: plsql
1.
2.
3.
DEFAULT_SDU_SIZE=32767
RECV_BUF_SIZE=65536
SEND_BUF_SIZE=65536


...
В listener.ora и tnsnames.ora не стал добавлять, потому что пришлось бы перезапускать листенер, чего не хотелось. Но можно было и так сделать, поэтому ограничился первым вариантом.
...


Андрей, все же крутить такие параметры для всех клиентов, не самые верное решение, бо это может вызвать задержки для задач, которые периодически обмениваются только маленькими, короткими пакетами, например Forms. Особенно, если они работают по медленным линиям.
Плюс, при передаче больших данных с сервера на клиент, возникнет перегруз буферов TCP клиента, у которого не настроены большие буферы, что приведёт к ожиданиям сети при таких операциях.
Более адекватным решением, КМК, было бы все же поднятие выделенного listener на другом порту и настройка специальных TNS Alias, только для тех соединений, которые требуют этого.
Единственно, Вам нужно будет продумать, нужна ли динамическая регистрация служб на нем. Обычно, этого не требуется, для служебных целей как правило используются статическая регистрация, но в принципе это тоже можно настроить.
Основной listener, при этом можно совсем не трогать, и работа с ним останется такой же, как и раньше.

Дополнительно, два listener, позволят ограничить соединения от клиентов, например при создании standby, если остановить основной listener.
Минус в том, что придётся контролировать

Спасибо, буду мониторить ситуацию, если будет такая необходимость буду делать, как Вы сказали.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL*Net message/data to/from client
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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