ODBC driver для SQL 2000

Kon
Новичок
Posts: 84
Joined: 24 Jul 2002 20:42
Location: Chicago

ODBC driver для SQL 2000

Post by Kon »

Кто нибудь знает если существует ODBC driver для SQL Сервера который бы поддерживал TRANSACTION ISOLATION LEVEL READ UNCOMMITTED?

Стандартный driver не имеет этой функции. Я знаю что Sybase driver поддерживает это, но они не гарантируют что Sybase и SQL 2000 совпадают.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: ODBC driver для SQL 2000

Post by tengiz »

Имеет. См. MSDN Online - SQL Server 2000 - Adjusting Transaction Isolation Levels:
...ODBC applications call SQLSetConnectAttr with Attribute set to SQL_ATTR_TXN_ISOLATION and ValuePtr set to SQL_TXN_READ_UNCOMMITTED, SQL_TXN_READ_COMMITTED, SQL_TXN_REPEATABLE_READ, or SQL_TXN_SERIALIZABLE...

Не говоря уже о том, что можно просто вызвать SQLExec и выполнить "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED".
Cheers
Kon
Новичок
Posts: 84
Joined: 24 Jul 2002 20:42
Location: Chicago

Post by Kon »

SQL_ATTR_TXN_ISOLATION нужно выставлять программатически. Я ни в код ни в SQL лезть не могу.

PeopleSoft соеденяется с SQLoм через System DSN который я создаю на сервере.
когда я создаю эту DSN то опции для выставления isolation level тaм нету.

Я пытался открывать DSN в notepad и добавлять
SQL_ATTR_TXN_ISOLATION =SQL_TXN_READ_UNCOMMITTED
или
READ_ISOLATION_LEVEL=RU
или
READ_ISOLATION_LEVEL= READ_UNCOMMITTED
но это не работает.

Поэтому я ищу где купить другой драйвер для SQLa.
VYLE
Уже с Приветом
Posts: 1772
Joined: 06 Sep 2001 09:01
Location: Boston, MA -> Charlotte,NC ->Danbury,CT

Post by VYLE »

Kon wrote:PeopleSoft соеденяется с SQLoм через System DSN который я создаю на сервере.
когда я создаю эту DSN то опции для выставления isolation level тaм нету.

Я пытался открывать DSN в notepad и добавлять
SQL_ATTR_TXN_ISOLATION =SQL_TXN_READ_UNCOMMITTED
или
READ_ISOLATION_LEVEL=RU
или
READ_ISOLATION_LEVEL= READ_UNCOMMITTED
но это не работает.

Поэтому я ищу где купить другой драйвер для SQLa.


Если PeopleSoft сам программно устанавливает уровень изоляции, то Вам никакие настройки драйвера скорее всего не помогут.
Я не настолько богат, чтобы пить дешевую водку.
SkyWalker
Уже с Приветом
Posts: 317
Joined: 16 Feb 2001 10:01
Location: US

Post by SkyWalker »

В System DSN этого прописать не получится. Этот параметр надо задавать атрибутом соединения на самом клиенте.

Насчет 3-rd party драйвера посмотрите вот это: http://www.datadirect-technologies.com
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

Kon, если Вы хотите менять уровень изоляции по умолчанию для чужого написанного и отлаженного приложения, причём на READ UNCOMMITTED, то Вы серьёзно рискуете целостностью данных. Вы уверены, что это именно то, что Вам нужно?
Cheers
Kon
Новичок
Posts: 84
Joined: 24 Jul 2002 20:42
Location: Chicago

Post by Kon »

Для отчетов ето не повредит, мне нужно избавиться от постоянного blocking
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

Kon wrote:Для отчетов ето не повредит, мне нужно избавиться от постоянного blocking

Вообще-то это повредит и отчётам тоже - Вы можете получите нарушение целостности на бумаге. Возможно очень важной и очень официальной. У Вас какой уровень поддержки от MS имеется? Может, Вас просто к правильным людям нужно направить?
Cheers
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Kon wrote:Для отчетов ето не повредит, мне нужно избавиться от постоянного blocking


Мне кажется это второй вопрос о тормозах отчетов PeopleSoft при работе с MS SQL изза blocking
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

А, вот
http://forum.privet.com/viewtopic.php?t=43963

Так ничего сделать и не удалось ?

P.S. SQL server 2003 со snapshots спасет отца русской демократии :)
А пока можно сделать transaction log backup во вторую базу и отчеты запускать там
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Кстати, ODBC driver for DB2 имеет такую возможность конфигурирования. Я имею в виду уровень изоляции. И это совершенно нормально и понятно. Дело видимо в том что в программировании для DB2 принято пользоваться умолчанием для уровня изоляции, который затем устанавливается (меняется внешним образом), а также возможностью устанавливать уровень явно, но на уровне отдельного оператора. Типа:

Select ... from .... WITH UR

Кстати, мистер Коn, я тут на Вас ссылался когда мы обсуждали замену реплики для репортинга на прямой доступ к продакшн базе. Я был против, но вспомнив что Вы писали как Вам удалось настройками выкрутиться, я все таки присоединился к этому течению. Не надо конечно понимать то что я сказал буквально. Я и когда соглашался не очень то в это верил, но уж очень хочется уйти от репликации в MS SQL базу (до этого у нас был Oracle для реплики - тоже не подарок, но как то поспокойней было) - а там бы разобрались что делать и кто виноват.
Выходит у Вас, Kon, не все так безоблачно как мне казалось.
Совершенно солидарен с Tengiz - так произвольно играть с уровнем изоляции недело, а тогда остается репликация?
:pain1: Что Tengiz скажет ?
Kon
Новичок
Posts: 84
Joined: 24 Jul 2002 20:42
Location: Chicago

Post by Kon »

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

Я боюсь что с планируемым обьемом работы мои настройки перестанут помогать. Пользователи и PeopleSoft согласились что некоторые отчеты можно без проблем читать и с dirty reads. Для етих отчетов я и построил реплицированую базу на другом сервере. Но репликация с exclusive locks постоянно воюует с shared locks от отчетов.

Я только что повесил трубку после общения с PeopleSoftом. Оказывается они официально поддерживают dirty reads для ограниченных отчетов. Их способ это создать views типа "select * from table kaka (nolock)".
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Kon wrote:..... Пользователи и PeopleSoft согласились что некоторые отчеты можно без проблем читать и с dirty reads. Для етих отчетов я и построил реплицированую базу на другом сервере. Но репликация с exclusive locks постоянно воюует с shared locks от отчетов.....


Ну вот Вы меня опять озадачили 8O разве dirty read-у нужен какой-либо lock? Откроюсь сразу - в DB2 dirty read не запрашивает никаких lock-ов. Что-то Вы все мое понимание этих проблем пермешали. Вы ранее выяснили, что репликация может спасти онлайн процессинг от дэдлоков, но если оставить репортинг как есть (те без dirty read) то репортинг будет наезжать на репликацию и наоборот. Dirty же read спасет всех и без репликации ценой, может быть (как выяснилось) неправильных данных в отчетах.
Укажите, что я не правильно излагаю.
Kon
Новичок
Posts: 84
Joined: 24 Jul 2002 20:42
Location: Chicago

Post by Kon »

zVlad,
вы абсолютно правы.
Репликация была поставлена что бы снять часть нагрузки (CPU/IO/память) c transactional базы.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Kon wrote:zVlad,
вы абсолютно правы.
Репликация была поставлена что бы снять часть нагрузки (CPU/IO/память) c transactional базы.


Я вроде бы о нагрузке ни слова не говорил. Мы же вроде бы о concurency миркуем. :pain1:

Return to “Вопросы и новости IT”