Превышен лимит памяти в 20 МБ на сеанс для подготовленных операторов. Уменьшите количество или размер подготовленных заявлений - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь вставить запись в Azure sql Dataware House, используя Oracle ODI, но получаю ошибку после вставки некоторых записей.

ПРИМЕЧАНИЕ. Я пытаюсь вставить 1000 записей, но ошибка наступаетпосле 800.

Сообщение об ошибке: Причина: java.sql.BatchUpdateException: 112007; Превышен лимит памяти в 20 МБ на сеанс для подготовленных операторов.Уменьшите количество или размер подготовленных операторов.

Я пытаюсь вставить 1000 записей, но ошибка появляется после 800.

Сообщение об ошибке: Причина: java.sql.BatchUpdateException: 112007; Превышен лимит памяти в 20 МБ на сеанс для подготовленных операторов.Уменьшите количество или размер подготовленных выписок.

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Хотя ответ Абхиджита технически верен, я хотел бы предложить альтернативу, которая даст вам гораздо лучшую производительность.

Корень вашей проблемы в том, что вы выбрали наихудший из возможных способов загрузки большого объема данных в хранилище данных SQL Azure. Длинный список операторов INSERT будет работать очень плохо, независимо от того, сколько DWU вы выбрасываете, потому что это всегда будет операция с одним узлом.

Моя рекомендация состоит в том, чтобы адаптировать ваш процесс ODI следующим образом, предполагая, что ваш Oracle находится в локальной сети.

  • Запишите свою выписку в файл
  • Вызов AZCOPY для перемещения файла в хранилище BLOB-объектов Azure
  • CREATE EXTERNAL TABLE для сопоставления вида файла в хранилище
  • CREATE TABLE AS или INSERT INTO для чтения из этого представления в вашу целевую таблицу

Это будет на несколько порядков быстрее, чем ваш текущий подход.

0 голосов
/ 26 июня 2019

20MB - это предел, определенный на данный момент. Уменьшение размера партии, безусловно, поможет вам обойти этот предел.

Ссылка на ограничение емкости.

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-service-capacity-limits

...