|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Tolik Tentser 2:5020/400 05 Feb 2001 19:02:28 To : All Subject : Re: Увеличение скорости -------------------------------------------------------------------------------- 1prus@4ax.com> <95lvb9$1evm$1@news.gamma.ru> From: Tolik Tentser <tt@katren.ru> Hi, Valitov Leonid! В чреве акулы, пойманной Mon, 5 Feb 2001 10:31:11 +0000 (UTC), дети капитана Гранта нашли письмо на тему 'Re: Увеличение скорости': >> Эта штука называется "грязное чтение" и к использованию не >> рекомендуется, поскольку не гарантирует считывания непротиворечивых >> данных. >Все надо оценивать правильно >Если тебе нужны непротиворечивые данные то читай чисто и блокируй всех >а в большинстве бухгалтерских приложений достаточно и грязного Бухгалтерских ??? Грязного ??? Hе, нам с тобой определенно не по пути. Бухгалтерия по определению подразумевает требование не непротиворечивость данных. Тебя бухгалтера зубами сгрызут, если у тебя в какой отчет попадет одна сторона проводки с одной суммой (счетом), а другая - с еще не обновленной. >зато можно очень сложный и долгий селект написать и он никого не подвесит >а непротиворечивость данных на сервере должна быть защищена констрейнтами От грязного чтения - констрэйнты - не помощник. >> >Hо если открыта транзакция то это не поможет >> >> Кем открыта ? Почему не поможет ? А что, операторы могут выполняться >> вне транзакции ? >При грязном селекте с клиента как раз и получается >выполнение оператора вне транзакции Ой. Да ну ? Где ты это вычитал ? >> >Еще нужно помнить что процедура открывает транзакцию всегда >> >это если селект возвращаем из процедуры. >> >> Чушь какая то. >Почему чушь то. >Был у нас селект из вьюхи с (NOLOCK) и хорошо работал >Потом нужно было изменить алгоритм вьюхи и вышли за >ограничение в 16 таблиц >переписали в виде процедуры с перекладкой промежуточных >данных во временные таблицы >дак она начала всех вешать т.к. при исполнении процедуры >открывается impisit транзакция =8-() Откуда такие фантазии ? When a connection is in implicit transaction mode and the connection is not currently in a transaction, executing any of the following statements starts a transaction: ALTER TABLE FETCH REVOKE CREATE GRANT SELECT DELETE INSERT TRUNCATE TABLE DROP OPEN UPDATE Hайди тут EXEC ? Хранимые процедуры в MSSQL HИКАК не пересекаются с транзакциями, не стартуют их и не оборачиваются в них. Попробуй: create procedure aa as select @@trancount go select @@trancount exec aa drop procedure aa Bye ... Тенцер А.Л. tolik@katren.nsk.ru ICQ 15925834 --- ifmail v.2.15dev5 * Origin: AO Katren (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/20800bf16938.html, оценка из 5, голосов 10
|