|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
BTW, а зачем вообще Борланд сделал этот RC, если всё и так ладненько было с единственным snapshot'ом ? просто "шоб было как в стандарте" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 20:14 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
ТаблоидПо стандарту стейтмент, стартовавший в RC, должен увидеть все изменения, зафиксированные другими транзакциями после своего старта ? Да, должен. Ну, и ? К слову о стандарте: READ COMMITTED is the default isolation level for SQL Server. It prevents dirty reads by specifying that statements cannot read data values that have been modified but not yet committed by other transactions. Other transactions can still modify, insert, or delete data between executions of individual statements within the current transaction, resulting in non-repeatable reads, or "phantom" data. То есть поведение FB вполне стандарту соответствует. Или Ё! опять будет кричать, что "мартышка не понимает слова "фантом""?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 20:15 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Нарыл я тут кое-что в 5CD2-02-Foundation-2006-01.pdf, страница 123 (видимая на "листе" PDF), она же 145 по Ctrl-G. В тексте определено, что может происходить при каждом из уровней изолированности, но в нём нет явно выраженных требований к тому, что НЕ должно происходить (т.е. что запрещено). А главное, там всё упирается в ["добровольное"] перечитывание транзакцией Т1 данных. Но не указано, что она такое перечитывание непременно обязана делать.5CD2-02-Foundation-2006-01.pdf, pg 145The isolation level specifies the kind of phenomena that can occur during the execution of concurrent SQL- transactions. The following phenomena are possible : 1) P1 (“Dirty read”): <... skipped ...> 2) P2 (“Non-repeatable read”): SQL-transaction T1 reads a row. SQL-transaction T2 then modifies or delete that row and performs a COMMIT. If T1 then attempts to reread the row, it may receive the modied value or discover that the row has been deleted. 3) P3 (“Phantom”): <... skipped ...> Таким обр., Оракл в TIL = RC делает это перечитывание, а ФБ - не всегда (закономерность я не выявил, впрочем). Но повторюсь: не вижу в стандарте утверждения, что такая перечитка обязательна! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 20:58 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Таблоид, как обычно, ввечеру ты гонишь. Утром перечитай стандарт и свою писанину. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 21:05 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
dimitrкак обычно, ввечеру ты гонишь. Утром перечитай стандарт и свою писанину.до утра не дотерплю. Сна не будет, пощади!... Говори прямо сейчас, в чём именно бред ? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 21:08 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
ТаблоидОракл в TIL = RC делает это перечитывание, а ФБ - не всегда (закономерность я не выявил, впрочем).а, вижу... поправочку, конечно же, надо: ФБ его не делает. Но и не обязан, насколько я понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 21:28 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
ТаблоидГовори прямо сейчас, в чём именно бред ? :-) нет уж, так воспитательного эффекта не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 21:51 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Таблоид Но повторюсь: не вижу в стандарте утверждения, что такая перечитка обязательна! и не увидишь, нет там этого требования. стандарт писали под блокировочники полностью проигнорировав версионные уровни и здравый смысл. в стандарте на IL RC требуеться считать лишь закомиченную запись, тот же мсскл на RC может вычитать миллион записей, хотя реальнео в таблице их всего пять, просто пока он читает эти пять записей другие транзакции меняют эту запись так, что она "переезжает" в конец таблицы и стейтмент его читает еще раз. и так миллион раз :-) лажа ? однозначно, зато полностью в соответствии с ANSI стандартом. а по примеру ты похоже еще путаешь рестарт, который оракл в таком простом примере не делает. в моем примере оракл по SCN видит, что последний блок таблицы изменился после старта стейтмента. никаких рестартов там не происходит, что бы произошел рестарт более сложный предикат нужно сочинить. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 23:00 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Yo.!в моем примере оракл по SCN видит, что последний блок таблицы изменился после старта стейтмента. никаких рестартов там не происходит Да-а-а?.. И если в этом изменившемся блоке лежит десять последних записей, включая свежевставленную, что он будет делать? Неужели телепатически догадается какую из них не трогать?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 23:28 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovДа-а-а?.. И если в этом изменившемся блоке лежит десять последних записей, включая свежевставленную, что он будет делать? Неужели телепатически догадается какую из них не трогать?.. иди пожуй ! ИТ это совсем не твое. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 23:32 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Yo.!делаем IOT таблицу (что бы гарантировать, что пишем в начало и конец) create table shit (id int primary key, a varchar2(20)) organization index; загоняем туда млн записей начина с ID=2 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
update shit set a='updated' where id>0 ; пока там шуршит сессия2: insert into shit values (1,'new') ; commit; insert into shit values (1000001,'new') ; commit; сколько записей проапдейтит FB ? практически наверняка, проапдейтит 1000001, а 1 оставит нетронутой .А это... как его... в общем, проверил я в Oracle 11.2.0.3.0 (EE). Результат: он тоже НЕ трогает запись, добавленную в начало таблицы. DDL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: plaintext 1. 2. 3. 4. 5.
Дальше открываю два sqlplus'a. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Через примерно 15-20 сек в session #1 : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
ЧЯДНТ ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 08:59 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Таблоид, Конечно не тронул, оракл как и полагается увидел таблицу на момент старта стейтмента. Обе записи появились после ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 09:05 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Впрочем, апдейт в Oracle также "не видит" и такую запись, которая будет добавлена и закоммичена в конец таблицы (в примере выше - с id=2000001). Я уж забеспокоился, может в serializable работаю, но нет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 09:07 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Yo.!оракл как и полагается увидел таблицу на момент старта стейтмента.тьфу, не успел я :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 09:09 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Yo.!оракл как и полагается увидел таблицу на момент старта стейтментаТак, хорошо. А что тогда происходит у него при serializable ? (я понимаю, что это уже совсем не RC, просто интересно: почему ошибка лезет ?) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 09:25 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
ТаблоидА что тогда происходит у него при serializable ? это то о чем мы в контексте ROWDEPENDENCIES говорили, оракл заметив что последний блок меняли, перестраховывается. кляуза ROWDEPENDENCIES выставит SCN на каждую запись, тогда поводов перестраховыватся у оракла не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 09:54 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Народ, решение для FB вполне очевидно - каждый оператор в RC транзакции при старте должен делать "снимок" TIP (как это делается для снапшотов), чтобы использовать этот снимок в процессе своего выполнения. Но это слишком дорого чтобы делать это с каждым оператором по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 10:13 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
avp_каждый оператор в RC транзакции при старте должен делать "снимок" TIP (как это делается для снапшотов) И тут во весь рост встаёт вопрос: а нахрена этот оператор вообще выполняется в RC, если должен работать "как в снапшоте". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:52 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovИ тут во весь рост встаёт вопрос: а нахрена этот оператор вообще выполняется в RC, если должен работать "как в снапшоте". Очевидно чтобы в рамках одной транзации RC атомарно выполнить несколько операторов. Зачем это может быть нужно - хз. Возможно нужен костыль чтобы нормально работали клиенты которые не замарачиваются менеджементом транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:58 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
avp_Зачем это может быть нужно - хз. Возможно нужен костыль чтобы нормально работали клиенты которые не замарачиваются менеджементом транзакций. Скорее потому, что "взрослые субд" - простые как горшок: у них транзакция или есть или её сразу нет. А чтобы сразу было целых две транзакции или даже три - не помещается в их маленькую головку. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 13:02 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТаблоидюзают именно RC, как более способствующий производительности. С какого бы перепугу? Ты эту "разницу в производительности" мерял? Мерял на тестовых серверах. На MS SQL Server 2008 разница в производительности между read committed и snapshot составляет примерно 7-10%, для системы с которым я работаю. При этом в случае использования snapshot количество транзакций которые долго выполнялись в несколько десятков раз выше по сравнению с read committed. Система занимается биржевой торговлей, характер нагрузки приложения близок к тестам TPC-E. Snapshot и read_committed_snapshot у нас на всех OLTP серверах отключены, как раз из-за таких результатов тестов. Думаю именно из-за того что в спецификации TPC-E прописано что количество долго выполняющихся транзакций не должно быть больше определенного уровня, Оракл не участвует в этих тестах. Вероятно не может обеспечить хорошую производительность так как там невозможно отключить версионность. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 14:33 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
andsmМерял на тестовых серверах. На MS SQL Server 2008 разница в производительности между read committed и snapshot составляет примерно 7-10%, для системы с которым я работаю. При этом в случае использования snapshot количество транзакций которые долго выполнялись в несколько десятков раз выше по сравнению с read committed. Система занимается биржевой торговлей, характер нагрузки приложения близок к тестам TPC-E. Snapshot и read_committed_snapshot у нас на всех OLTP серверах отключены, как раз из-за таких результатов тестов. Думаю именно из-за того что в спецификации TPC-E прописано что количество долго выполняющихся транзакций не должно быть больше определенного уровня, Оракл не участвует в этих тестах. Вероятно не может обеспечить хорошую производительность так как там невозможно отключить версионность. я смотрю у некоторых уже пятница наступила в первом тесте TPC-E майкрософт пыталась без версионности пройти, но похоже нихера не вышло, пришлось майкрософту включать SNAPSHOT и все тесты в TPC-E сделаны с включенной версионностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:02 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
Yo.!в первом тесте TPC-E майкрософт пыталась без версионности пройти, но похоже нихера не вышло, пришлось майкрософту включать SNAPSHOT и все тесты в TPC-E сделаны с включенной версионностью. Проверил, действительно используется уровень snapshot. Вероятно не смогли решить проблему с консистентностью данных, у нас решение этой проблемы тоже заняло немало времени. Но все же это не отменяет того, что при решении проблемы консистентности версионность в OLTP системах можно использовать только там, где нет требований к времени прохождения транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:35 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
andsmНо все же это не отменяет того, что при решении проблемы консистентности версионность в OLTP системах можно использовать только там, где нет требований к времени прохождения транзакций. вам бы проспаться. крупнейшие OLTP системы мира крутятся на версионном оракле. посмотрите TPC-C. уж тут то вроде блокировочным режимам все карты в руки, мелкие транзакции, транзакции не сталкиваются друг с другом. казалось бы идеальные условия для блокировочников и сплошные неудобства ораклу с его консистентным RC и расходами на UNDO. но в тестах, чего то стабильно заруливает версионный оракл, а не блокировочники http://oraclemind.blogspot.com/2006/11/tpc-c-oracle-10-vs-mssql2k5.html ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:45 |
|
Что лучше FireBird 2.1 или MS SQL 2000?
|
|||
---|---|---|---|
#18+
andsmэто не отменяет того, что при решении проблемы консистентности версионность в OLTP системах можно использовать только там, где нет требований к времени прохождения транзакций. Не забывай добавлять "на MS SQL 2008". От их способа реализации версионности через жопу tempdb ничего другого ожидать и не приходится. PS: Слова "консистентность" и "Read Committed" в одном предложении вообще звучат смешно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:46 |
|
|
start [/forum/topic.php?fid=35&msg=37992586&tid=1552514]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 229ms |
total: | 354ms |
0 / 0 |