Особенности производительности для обработки больших объектов
При разработке прикладных программ объединения, выбирающих и обрабатывающих данные больших объектов, разработчикам программ и администраторам баз данных нужно понимать, как обработка больших объектов влияет на производительность.
Когда прикладная программа выбирает данные из источника данных объединения, сервер объединения должен выбрать данные в собственные буферы прикладных программ до отправки данных в прикладную программу. Так как большие объекты не обрабатываются в пуле буферов, данные больших объектов должны сначала передаваться через временное табличное пространство, определенное для сервера объединения. Для повышения производительности и сокращения потребления ресурсов разработчики прикладных программ должны материализовать данные больших объектов только при необходимости.
Аналогично, когда сервер объединения изменяет данные удаленных больших объектов, эти данные должны передаваться через временное табличное пространство, назначенное серверу объединения, прежде чем передаваться в источник данных.
Переходные большие объекты используют временное табличное пространство, назначенное серверу объединения. Поэтому администраторам баз данных может потребоваться увеличить размер этого временного табличного пространства, чтобы обеспечить достаточность рабочей области для обработки больших объектов.
Рекомендация: Для максимальной производительности при работе с большими объектами определите временное табличное пространство как управляемое системой (System Managed Space, SMS) и проверьте, что это временное табличное пространство расположено на диске с большой пропускной способностью ввода-вывода.
Использование интерфейса уровня вызовов (Call Level Interface, CLI) для обращения к большим объектам объединения
- API SQLFetch выбирает большой объект с сервера объединения или из источника данных в буферы прикладных программ в одной операции.
- API SQLGetData API выбирает большой объект по чанку за раз и может потребовать дополнительных вызовов API для выборки всего большого объекта в буферы прикладных программ.
Рекомендация: Для оптимальной производительности используйте API SQLGetData при выборе больших объектов через сервер объединения.
Для изменения данных больших объектов сервер объединения поддерживает API SQLExecute и SQLPutData. API SQLExecute изменяет данные большого объекта в одной операции, а для API SQLPutData могут потребоваться повторные вызовы для отправки всех данных большого объекта из буферов прикладных программ на сервер. В среде объединения все API выполняются на одном уровне.
Оболочки в доверенном и изолированном режиме
Псевдонимы, созданные для оболочек, которые определены как доверенные или изолированные, при выборке или изменении больших объектов работают одинаково.