(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Параметры ODBC драйвера PostgreSQL

Источник: mccinet

  • CommLog (C:\psqlodbc.log): Логирует в файл обмен информацией с сервером. Может быть полезен при отладке.
  • MyLog (C:\mylog_xxxx.log): Записывает в файл отладочную информацию. Обычно её просят прислать разработчики драйвера, если Вы сообщаете о найденном баге.
  • Disable Genetic Optimizer: Отключает генетический оптимизатор при установлении соединения с сервером. Это сделано только для удобства, чтобы не указывать соответствующий параметр в свойствах соединения вручную. Данный параметр был добавлен разработчиками драйвера, когда они обратили внимание, что сервер не в состоянии успешно оптимизировать некоторые запросы.
  • KSQO (Keyset Query Optimization): Включение этого параметра позволяет серверу безаварийно выполнять некоторые запросы. Ряд приложений, в частности MS Access, используют "keyset" запросы примерно такого вида:

    SELECT ... WHERE (a=1 AND b=1 AND c=1) OR (a=1 AND b=1 AND c=2) ...

    Есть вероятность, что такого типа запросы могут вызвать сбой сервера, если не задействовать данный параметр.

  • Recognize Unique Indexes: Этот параметр контролирует работу функции ODBC SQLStatistics() в части информации, которую та возвращает об уникальных индексах. Если он установлен, то MS Access может автоматически распознать первичный ключ. Только в этом случае присоединённые таблицы будут обновляемыми.
  • ReadOnly (default): Новые источники данных наследуют значение этого параметра для установки атрибута "ReadOnly" ("Только для чтения").
  • Use Declare/Fetch: Если опция включена (по умолчанию), драйвер автоматически создаёт и использует курсор для поддержки SELECT операторов SQL, сохраняя при этом 100 строк в кэше. Это даёт большое преимущество, особенно если Вы заинтересованы только в чтении, а не обновлении записей. Драйвер не забирает столько памяти, сколько потребовалось бы для буферизации всего результата.

    Однако, в этом случае таблица постоянно остаётся открытой, что может вызвать снижение производительности при обновлении записей. Кроме того, данный параметр является наследием стиля совсем старого драйвера podbc32. Сейчас модель распределения памяти значительно улучшена и производительность без использования курсора, как минимум, лучше, чем в старом драйвере.

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

  • Parse Statements: Когда эта опция включена, драйвер будет анализировать переданную ему команду SQL, чтобы идентифицировать таблицы и поля с целью получения информации о точности, допустимости NULL, о псевдонимах и т.д. Затем эти данные будут использованы в функциях драйвера SQLDescribeCol, SQLColAttributes и SQLNumResultCols.

    До версии 6.4 сервера, это был единственный способ получения сведений о точности для результата запроса.

    Если анализатор не мог справиться с полем (это могла быть функция, выражение и т.п.), он возвращался к старомодной методике выполнения команды и получения информации непосредственно из результирующего множества.

    Синтаксический анализатор достаточно «умён» и способен распознавать множество вещей, таких как псевдонимы полей и таблиц, идентификаторы в кавычках, объединения и многое другое. Он может корректно обработать поле-функцию или выражение независимо от сложности, но даже не пытается в этом случае определить тип данных и точность таких столбцов.

  • Unknown Sizes: Этот параметр контролирует функции SQLDescribeCol и SQLColAttributes в случае возникновения проблем с определением точности (имеется ввиду количество знаков) полей символьных типов данных (varchar, text и unknown). Первоначально это было сделано, чтобы обойти неспособность сервера версии до 6.4 правильно возвращать ширину varchar-полей.

    • Maximum : Всегда возвращается максимальная точность (количество знаков) типа данных.
    • Dont Know : Возвращается величина "Don't Know" и приложению позволяется самому строить дальнейшие предположения.
    • Longest : Возвращает размер самой длинной строки в любом столбце любой записи в выборке. Остерегайтесь этой опции при использовании курсоров, так как размер кэша может давать не самое лучшее представление о длине самой длинной колонки в кэше.
    В случае MS Access наиболее безопасно использовать значение Maximum .
  • Data Type Options: Влияет на отображение некоторых типов данных:

    • Text as LongVarChar : Тип данных TEXT отображается в SQLLongVarchar (в MS Access - это поле Memo), иначе - в SQLVarchar.
    • Unknowns as LongVarChar : Неизвестные типы (массивы и т.п.) отображаются в SQLLongVarChar (для MS Access в случае полей BYTEA и LO - это поле OLE объекта), иначе - в SQLVarchar
    • Bools as Char : Тип Boolean отображается в SQL_CHAR, иначе - в SQL_BIT.
    В случае MS Access, первые два флажка должны быть установлены, а третий - сброшен.
  • Cache Size: При использовании курсоров - это строковый размер кэша кортежей. Если курсоры не используются, то данный параметр определяет, под какое количество кортежей следует иметь уже выделенную память в каждый момент времени. В обоих случаях, значение по умолчанию - 100 строк.
  • Max Varchar Максимальное количество знаков для типов Varchar. Значение по умолчанию 254 соответствует строке в 255 символов, включающей завершающий нуль-символ. Если установить значение, превышающее 254, то MS Access будет воспринимать поля с таким размером как Memo и не даст использовать индексы по ним.
  • Max LongVarChar: Максимальное количество знаков для LongVarChar (в MS Access - это Memo). Значение по умолчанию 4094 соответствует 4095 символам, включая завершающий нуль-символ. Вы даже можете указать здесь значение -4, которое является стандартным для ODBC обозначением величины SQL_NO_TOTAL.
  • SysTable Prefixes: Дополнительные префиксы в именах таблиц, которые должны считаться системными. Драйвер уже воспринимает имена, начинающиеся с "pg_" как имена системных таблиц. Здесь Вы можете добавить собственные префиксы, разделенные точкой с запятой (;), такие как "dd_" который присутствует по умолчанию для таблиц словаря данных.
  • Connect Settings: Это команды, которые будут переданы серверу при успешном подключении. Для разделения команд следует использовать точку с запятой (;). Эти команды будут сопровождать каждый запрос, даже если он возвращает записи. Однако, в таком случае результат может быть потерян.
  • Row Versioning: Позволяет приложениям определять при попытке записи изменённой строки, что данные были модифицированы другим пользователем. Это также ускоряет процесс записи изменений, так как в условие WHERE не нужно включать каждый столбец. Для реализации данного механизма драйвер использует системное поле "xmin". Продукты Microsoft, кажется, успешно используют эту опцию.
  • Disallow Premature: Эта опция компенсирует определённый недостаток функциональности сервера, а именно подготовленные (prepared) запросы, которые PostgreSQL не поддерживал до версии 7.3. Когда приложение уже выполнило prepare-часть запроса, драйвер не знает, как получить информацию о полях результата.

    При использовании данной опции, драйвер открывает курсор на основе переданного запроса и выполняет команду "fetch backward", после чего закрывает курсор. Данные при этом, конечно, не возвращаются, но информация о результирующем множестве уже может быть получена обычным путём.

  • Show System Tables: Заставляет драйвер воспринимать системные таблицы как обычные. Установите этот флажок, если хотите получить доступ к системным таблицам.
  • OID Options:

    • Show Column - Включить служебное поле OID в список полей. Может быть полезно, если таблица не содержит первичного ключа или он состоит из слишком многих частей и неудобен для использования.
    • Fake Index - Эта опция позволяет «подделать» уникальный индекс по полю OID. Данная опция полезна, когда реального уникального индекса по полю OID нет, а приложение этого требует.
  • Protocol:

    • 6.2: Заставляет драйвер использовать Postgres 6.2 протокол, который имеет иную последовательность байтов, протокол и другие семантические отличия.
    • 6.3: Заставляет драйвер использовать Postgres 6.3 протокол. Он совместим и с 6.3 и с 6.4 серверами.
    • 7.X, 6.4+: Заставляет драйвер использовать протокол, совместимый с серверами версий 6.4 и старше.

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

  • Установить флаг «Disable Genetic Optimizer».
  • Установить флаг «KSQO».
  • Установить флаг «Recognize Unique Indexes».
  • Снять флаг «ReadOnly».
  • В группе «Data Type Options» установить флаги «Text as LongVarChar» и «Unknowns as LongVarChar», а также снять флаг «Bools as Char».
  • «Max Varchar» задать равным 254.
  • «Max LongVarChar» задать равным 8190.
  • В группе «Unknown Sizes» указать «Maximum».
  • В группе «Protocol» выставить версию Вашего сервера.

Также, я всё-таки рекомендую попробовать установить флаг «Use Declare/Fetch» и не описанный здесь флаг «True is -1».

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Microsoft »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 13.11.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft SQL CAL 2017 Sngl OLP 1License NoLevel DvcCAL
Microsoft Visual Studio Professional w/MSDN AllLng Software Assurance OLP 1 License No Level Qualified
Microsoft SQL Server Standard Core 2017 Sngl OLP 2Licenses NoLevel CoreLic Qualified
Microsoft Visual Studio Professional 2017 Sngl OLP 1License NoLevel
Microsoft Office 365 Бизнес премиум. Подписка на 1 рабочее место на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Каждый день новые драйверы для вашего компьютера!
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Надстройка "Поиск решения" MS Excel (6)
Помогите решить задачу с помощью " поиск решения" мука яйца ...
 
Corel. Сохранение файла в старом формате. (27)
у меня есть горящий вопрос по Корелу и никто мне не может дать на него ответ. Я работаю в...
 
Рисунок/разработка персонажа (1)
Приветик всем. Увидел здесь...
 
Настройка меню "Пуск" Windows 7 при помощи реестра (3)
Скажите пожалуйста, а как можно закрепить ярлыки программ с помощью твиков реестра в левой части...
 
Как извлечь рисунки из файла Word (40)
Вообще-то есть еще способ - сделать в Word-е Copy рисунка, открыть Microsoft Photo Editor и там:...
 
 
 



    
rambler's top100 Rambler's Top100