Прошу подсказать

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Гео
Сообщения: 4
Зарегистрирован: 16 апр 2005, 17:09

Прошу подсказать

Сообщение Гео » 16 апр 2005, 18:03

1. Может ли IB, в ответ на читающий запрос (select), дать deadlock? Конечно, при этом еще масса разных транзакций. Как избежать этого?
Параметры транзакции данного запроса:
READ COMMITTED, READONLY, NOWAIT
fibplus 4.8.1

2. В пределах одного коннекта ждет ли транзакция завершения выполнения предыдущей, при наличии достаточных ресурсов сервера (RAM & CPU)? Или они выполняются параллельно?
READ COMMITTED, READONLY, NOWAIT
fibplus 4.8.1

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 18 апр 2005, 10:58

1. нет. только если база повреждена или к базе обращаются по разным путям (см. faq) в старых версиях

2. www.ibase.ru/devinfo/ibtrans.htm, www.ibase.ru/devinfo/mga.htm

сначала почитал бы, потом вопрос задавал. Какие ресурсы, какой cpu???

Гео
Сообщения: 4
Зарегистрирован: 16 апр 2005, 17:09

Сообщение Гео » 18 апр 2005, 15:42

kdv писал(а):1. нет. только если база повреждена или к базе обращаются по разным путям (см. faq) в старых версиях

2. www.ibase.ru/devinfo/ibtrans.htm, www.ibase.ru/devinfo/mga.htm

сначала почитал бы, потом вопрос задавал. Какие ресурсы, какой cpu???
kdv в статье писал(а): Собственно, IB обладает возможностью в одном коннекте стартовать много
транзакций, что очень удобно (потом трудно будет привыкнуть к отсутствию
данной возможности в других серверах). Приложение должно стартовать
транзакцию, выполнить набор операторов, составляющих эту транзакцию, и
завершить транзакцию. Причем еще раз подчеркну, что именно клиентское
приложение решает, допустимы ли ошибки при выполнении операторов в
транзакции, и как завершать транзакцию с учетом наличия или отсутствия
ошибок.
- означает ли это, что транзакции выполняются сервером параллельно и могут завершаться не в том порядке, в котором стартовались? Если можно, ответ - без отсылок, а просто словами (приличными!). Спасибо заранее.

Martyn
Сообщения: 4
Зарегистрирован: 25 апр 2005, 23:33

Сообщение Martyn » 27 апр 2005, 23:01

Гео писал(а):
kdv писал(а):1. нет. только если база повреждена или к базе обращаются по разным путям (см. faq) в старых версиях

2. www.ibase.ru/devinfo/ibtrans.htm, www.ibase.ru/devinfo/mga.htm

сначала почитал бы, потом вопрос задавал. Какие ресурсы, какой cpu???
kdv в статье писал(а): Собственно, IB обладает возможностью в одном коннекте стартовать много
транзакций, что очень удобно (потом трудно будет привыкнуть к отсутствию
данной возможности в других серверах). Приложение должно стартовать
транзакцию, выполнить набор операторов, составляющих эту транзакцию, и
завершить транзакцию. Причем еще раз подчеркну, что именно клиентское
приложение решает, допустимы ли ошибки при выполнении операторов в
транзакции, и как завершать транзакцию с учетом наличия или отсутствия
ошибок.
- означает ли это, что транзакции выполняются сервером параллельно и могут завершаться не в том порядке, в котором стартовались? Если можно, ответ - без отсылок, а просто словами (приличными!). Спасибо заранее.

Мне ОЧЕНЬ не нравится KDV - он постоянно дает ссылки, такое впечателение, что СВОЕГО ума у него нет

мало того, он как ВЛАСТ (кстати я не ошибся - именно ВЛАСТ) ИМУЩИЙ (читай админ форума) - посылает куда-то....



Не знаю, как у Вас, а у меня все старты и коммиты - происходят в

startTransation;
try
commitTransation;
except
RollBackTransation;
end

и кстати, писать ReadOnly d параиетре транскаций необязательно
read
nowait
rec_version
read_committed

т.е. читать только подтвержденные транзакции, а если произошло измненние, но не было еще Commit, то Ваш запрос возьмет старую версию записи - немодифицированную

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 27 апр 2005, 23:43

Я плакаль :lol: :lol: :lol: Это в аналы :lol: Я не ошибся, именно в АНАЛЫ :lol:

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 27 апр 2005, 23:52

Martyn писал(а):Мне ОЧЕНЬ не нравится KDV - он постоянно дает ссылки, такое впечателение, что СВОЕГО ума у него нет
Ты откуда взялось такое... никакое ?
Martyn писал(а):мало того, он как ВЛАСТ (кстати я не ошибся - именно ВЛАСТ) ИМУЩИЙ (читай админ форума) - посылает куда-то....
Мало посылает, сходи :lol:

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 апр 2005, 23:57

Martyn писал(а):Мне ОЧЕНЬ не нравится KDV - он постоянно дает ссылки, такое впечателение, что СВОЕГО ума у него нет
дык, согласен. на свои же статьи давать ссылки - особого ума не надо. Кстати если я мало того что статьи буду писать, да еще и популярно объяснять (тем кто НЕ хочет читать статьи, которые я пишу) - тогда я буду всем нравиться? ](*,) Нет уж, спасибо...
Гео писал(а): - означает ли это, что транзакции выполняются сервером параллельно и могут завершаться не в том порядке, в котором стартовались? Если можно, ответ - без отсылок, а просто словами (приличными!).
вопрос совершенно невменяемый. Если сервер не может выполнять транзакции параллельно, то это не сервер, а незнамо что.
Да, он ОБЯЗАН выполнять (и делает это) транзакции параллельно, и завершать их в каком угодно порядке.
Martyn писал(а): Не знаю, как у Вас, а у меня все старты и коммиты - происходят в

startTransation;
try
commitTransation;
except
RollBackTransation;
end
такая конструкция совершенно необязательна. Это дело вкуса. Клиент сам решает, в каком случае как ему завершить транзакцию. Если в транзакции выполнялся один оператор, и он даже не выполнился, то все равно можно делать Commit. А в ряде случаев на Rollback сервер сам делает Commit. Это к тому, что статьи все-таки надо читать, причем не обязательно только мои...
Martyn писал(а):т.е. читать только подтвержденные транзакции, а если произошло измненние, но не было еще Commit, то Ваш запрос возьмет старую версию записи - немодифицированную
в общем, если человек залез на форум, то он может и статью прочитать, не переломится. Где ясно написано, что никакие "модифицированные" версии ни при каком уровне изолированности IB/FB клиенту не показывает. Никогда.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 28 апр 2005, 00:53

[quote="kdv"][/quote]

Офф. Ты в аське меня сегодня видел? Если да, отвечать не обязательно, я всё равно уже убегаю.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 28 апр 2005, 00:56

hvlad писал(а):Ты откуда взялось такое... никакое ?
Из Феодосии, вестимо. Оно тут на днях просило помощи по взлому чужой базы :lol:

Ответить