Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
A.Panskikh"товарис-ч не понимает, товарисчу нужно объяснить" medoed, когда выполняются тысячи транзакций в секунду, совершенно непонятно что там визуализировать? Поэтому специалисты, обслуживающие такие системы смотрят на вас с недоумением. В db2 нет готовых графических тулзов, потому что предоставляемые интерфейсы позволяют получить видение на систему в любом виде не напрягаясь. И любой специалист имеет собственный набор подобных инструментов, под разные задачи и системы. И практически все они являются скриптами, работающими в автономном режиме. Хотите графики рисовать - тот же perfmon цепляет счетчики от db2. Если вам необходимо разобраться в блокировках - есть несколько возможностей. Самый простой и эффективный, IMHO, db2set DB2_CAPTURE_LOCKTIMEOUT=ON Если необходимо раскопать глубже, включаете трассировку. Andy Знакомящиеся с юниксами сначала бьются в истерике, потом читают документацию и блаженствуют. Знакомящиеся с виндами сначала блаженствуют, потом читают документацию ... А посоны то и не знали Вы читаете по диагонали походу, мне по фиг сколько в секунду транзакций, блокировка начинается с одной или 2-х, если это deadlock. В db2 нет готовых графических тулзов выделил жирным, поэтому она и сливается даже на мировом рынке перед MSSQL и Oracle. Если когда либо буду участвовать в выборе СУБД для программного решения, DB2 не пройдет ! В MSSQL все визуализировано, админка вообще простая и интерактивная, если не берем навороченный системы, существует куча визуальных утилит и view по производительности, хорошая имитация Oracle - ой версионности, правда через TEMPDB, но все же... Насчет вашего совета, попробуем, но раннее Марк Баринштейн мне советовал мониторчик , но он выручает процентов на 90% по блокировкам. И если гуру не может гарантировать способ 100% выявления зависимостей блокировок, то это не проблема гуру, а ограниченность СУБД обычно . Насчет юниксов и чтения документации понятно, асемблер случайно не надо познать, чтобы DB2 лучше понимать Да и кстати вы так и не ответили, как насчет операторов в DB2 pivot и unpivot или реальные посоны пишут кучу case или java функции для DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 12:59 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoedно раннее Марк Баринштейн мне советовал мониторчик, но он выручает процентов на 90% по блокировкам. И если гуру не может гарантировать способ 100% выявления зависимостей блокировокЭто не мониторчик, а способ получить текущую ситуацию с блокировками. И с ним действительно иногда нельза понять, какой именно запрос заблокировал запись. Для выяснения этого надо либо получать историю запросов заблокировавшей транзакции другой командой прямо сейчас, либо анализировать event monitor for locking потом. Расскажите про MSSQL вот что. Я правильно вас понял, что там если (везде транзакции не завершаются): сессия 1: - stmt1 заблокировал строку в table1 и завершился - выполнились stmt2, ..., stmtN, которые тоже могут блокировать, а может и нет эту строку в table1 сессия 2: - выполнила запрос и повисла на блокровке, наложенной сессией 1 то можно: - посмотреть все запросы, выполненные в этой транзакцией сессией 1 (а не только последний выполненный запрос в этой сессии, по которому часто вы ничего определить се сможете) - определить, что именно stmt1 заблокировал запись, а не какой-то другой запрос из той же сессии (для этого, скорее всего, надо хранить привязку конкретной блокировки к запросу, его наложившему, во что мне с трудом верится, что это в MSSQL есть) Если да, дайте ссылку на то, какие именно функции/процедуры в MSSQL это могут показать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 14:01 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinmedoedно раннее Марк Баринштейн мне советовал мониторчик, но он выручает процентов на 90% по блокировкам. И если гуру не может гарантировать способ 100% выявления зависимостей блокировокЭто не мониторчик, а способ получить текущую ситуацию с блокировками. И с ним действительно иногда нельза понять, какой именно запрос заблокировал запись. Для выяснения этого надо либо получать историю запросов заблокировавшей транзакции другой командой прямо сейчас, либо анализировать event monitor for locking потом. Расскажите про MSSQL вот что. Я правильно вас понял, что там если (везде транзакции не завершаются): сессия 1: - stmt1 заблокировал строку в table1 и завершился - выполнились stmt2, ..., stmtN, которые тоже могут блокировать, а может и нет эту строку в table1 сессия 2: - выполнила запрос и повисла на блокровке, наложенной сессией 1 то можно: - посмотреть все запросы, выполненные в этой транзакцией сессией 1 (а не только последний выполненный запрос в этой сессии, по которому часто вы ничего определить се сможете) - определить, что именно stmt1 заблокировал запись, а не какой-то другой запрос из той же сессии (для этого, скорее всего, надо хранить привязку конкретной блокировки к запросу, его наложившему, во что мне с трудом верится, что это в MSSQL есть) Если да, дайте ссылку на то, какие именно функции/процедуры в MSSQL это могут показать. Тээкс, есть утилита, не уверен, что я ей именно ей пользовался, но вот её описание: MSSQL BLOCKS , она тоже в древовидной структуре все отображает. Ничего включать по базе не нужно, это доступно по умолчанию. Код: sql 1. -- процедура для остлеживания блокировок. Код: sql 1. -- системное представление для остлеживания блокировок. Насчет сессий, в последнее время, если мне память не изменяет вводят расширение уровня изоляции Read Commit Read Commit Snapshot Этот уровень работает немного по другому а) В 1-ой сессии допустим берется 5-ть строк и с ними производятся действия (экземпляры как я понимаю кладется в TEMPDB) б) Во 2-ой сессии берется допустим те же 5-ть строк и если первая транзакция не закоммитила, то данные будут такими же как и на вход в первой , но блокировки не возникает, потому как 1-ая сессия работает с копией данных. Синхронизация данных и отсутствие коллизий обеспечивает сама база. Теперь как выяснить, что конкретно делается, что приводит к блокировке. Рассмотрим самый тяжелый случай, пусть лочит процедура! С помощью графической утилиты, мы например видим виновника , вот такую выполняющуюся процедуру: Код: sql 1. . Но как понять, какая конструкция внутри этой процедуры является виновником блокировок? Тут вступает в бой следующая стандартная, визуальная утилита SQL Profiler от Management Studio. Он очень прост в понимании, запускается в любое время и для нашего случая, достаточно выбрать галочки профилирования в разделе Stored Procedures. Таким образом мы online поймаем конкретный statement procedure, например delete from Mark.mind конкретного процесса (SPID), который вызывает проблемы. :) Марк, дабы проверить мои доводы, предлагаю Вам скачать Microsoft SQL Server 2005 Express Edition и попробовать все то что, я описал! P.S. Почему то не один DB-2 -ник, не отвечает за pivot и unpivot , это ненужный функционал для DB2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 15:58 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Вы, похоже, не поняли, о чем я спросил. Я не спрашивал вас о профайлере. Когда кто-то висит на блокировках, поздно запускать профайлер - как он мне покажет, какие запросы в этой сессии были выполнены? Или он у вас включается и работает для всех сессий заранее? Это был вопрос о блокировках и выяснении причин. Я увидел вот это высказывание: medoedНо похоже, для каждой задачи в db2 своя студия нужна:-) Не появилось ничего толкового кстати для отслеживания online блокировок, чтоб прям было видно, кому плохо и скрипты виновника соответсвенно запрос виновник блокировок , желательно бы все визуально и наглядно, не?и подумал, что да, было бы очень удобно видеть (да ещё в графике!) все запросы виновника блокировок в его текущей транзакции. Повторюсь, в DB2 это можно получить только на сервере, хотя не сложно написать (я её написал, и у меня она работает) коротенькую табличную функцию, которая возвращает результат системного вызова (db2pd -db mydb -appinfo X) на сервере для этого. Вы же мне показываете какую-то стороннюю разработку, которая дерево блокировок, может, и показывает, но есть сомнения, что она показывает информацию о виновнике, описанную выше. Скачивать MSSQL и проверять мне несколько сложнее, чем вам было бы ответить про то, как в MSSQL'е это делатся. Про pivot: я считанные разы встречал необходимость в pivot, когда надо было именно SQL'ем это сделать. Unpivot - ни разу. Отчетов я в свое время делал таких немало, но все с помощью генераторов отчетов. Пользователям результаты в виде файла вывода SQL команды обычно не показывают. Для тех, кому лень пользоваться для этого Excel'ем или генераторами отчетов, которые и должны, по-моему, этим заниматься, я как-то написал такую процедуру: pivot.sql Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. Пример вызова: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Пока для всех тех немногих случаев, когда мне надо было получать сводные данные, она подходила. Вопрос к вам: а вы сколько раз встречались с необходимостью получения результатов в таком виде, и что это были за случаи? Я имею ввиду продуктивные системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 17:13 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Ну чтож Марк, диалог у нас конструктивный, пойдем дальше. :) Я не спрашивал вас о профайлере. Когда кто-то висит на блокировках, поздно запускать профайлер - как он мне покажет, какие запросы в этой сессии были выполнены? Или он у вас включается и работает для всех сессий заранее? Код: sql 1. - показывает и текущее состояние блокировок описание Код: sql 1. - тоже. Profiler можно включать заранее, можно во время проблем, подключиться к текущим процессам никто не мешает во время их выполнения, если он детализирован на уровне statement процедуры, то он покажет, то что выполняется именно сейчас в процедуре. Я специально проверил и нашел опцию, доказывающую, что можно в процесе подключаться, смотрите картинку! Опять же можно понять, какой statement в процедуре давал блокировку. Да профайлер можно запускать для всех процессов, можно для одного, можно для определенного приложения/компьютера/логина, можно сразу писать в XML файл, можно на экране видеть меняющиеся запросы. Профайлер, на моей практике не особо грузил сервер, потому как для его работы не нужно в отличие от DB2 что то включать на сервере (дополнительные опции). Профайлер обычно запускает разработчик/админ на своей машине , а не на сервере - что тоже приятно! Это стандартное средство от Microsoft :) Повторюсь, в DB2 это можно получить только на сервере Ну не говорите мне после этого, что DB2 это удобно :) Вы же мне показываете какую-то стороннюю разработку, которая дерево блокировок, может, и показывает, но есть сомнения, что она показывает информацию о виновнике, описанную выше. Сторонняя разработка (насколько мне помнится бесплатная), просто удобно отображает виновника на верху в вершине дерева, красным цветом (логин,spid процесса и sql statement его), ниже отображаются страдальцы, кто заблокирован этим запросом. Все это происходит online, утилита маленькая висит в трее, базу не грузит, никому не мешает. Произошла блокировка, в трее загорелся значек программы красным цветом, смотрим , что произошло. Разве не гут и замечу все это на своем рабочем месте разработчика, а не на сервере и online :)? Про pivot: я считанные разы встречал необходимость в pivot, когда надо было именно SQL'ем это сделать. Unpivot - ни разу. Отчетов я в свое время делал таких немало, но все с помощью генераторов отчетов. Пользователям результаты в виде файла вывода SQL команды обычно не показывают. Для тех, кому лень пользоваться для этого Excel'ем или генераторами отчетов, которые и должны, по-моему, этим заниматься, я как-то написал такую процедуру: Ну понятно, стандартная песня, что это не нужно, а если что напишем сами велосипед Вопрос к вам: а вы сколько раз встречались с необходимостью получения результатов в таком виде, и что это были за случаи? Я имею ввиду продуктивные системы. 2-ва раза пришлось тоже материться и писать аналог pivot для Sybase 11.5 по-моему платформа была, но я в отличие от вас понимал, что это убогость СУБД, что нет таких команд! unpivot - меня спрашивали на собеседовании в крупной конторе на dwh разработчика, написал велосипед ручками, потому как думал, как и вы раннее, что не нужно, получился ковнокод, возможно в том числе и поэтому не взяли! Наверное функция по перевороту строки Reverse 13965897 тоже не нужна? Вообщем, думаю к 15 версии, у db2 появятся и нормальные утилиты/инструменты и набор современных команд! А пока DB2 незачет. P.S. Я понимаю, что каждый кулик хвалит свое болото, но может быть почитав этот топик, разработчики DB2 поймут степень вязкости и убогости бедности DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 18:16 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed, То, что вы показали (sp_lock, sys.dm_tran_locks ) - это просто описание блокировок и их свойств. Все то же самое есть в DB2. То, что вы можете включить профайлер в момент выполнения процедуры еще ни о чем не говорит. Ну не покажет он вам тех запросов, которые процедура выполнила, и которые, собственно вызвали блокировку другого приложения, пока профайлер был неактивен на этой сессии. Я нигде не нашел того, о чем я вас спрашивал. Еще раз прочитайте внимательно про то, что мне и вам надо для того, чтобы понять, что же именно вызвало блокировку. Это ИСТОРИЯ ЗАПРОСОВ БЛОКИРУЮЩЕГО ПРИЛОЖЕНИЯ. Сделайте простой тест на MSSQL с двумя сессиями и запросами в них, как я описал. Когда 2-я сессия повиснет на блокировке, запускайте что хотите с графикой или без, но вытащите историю запросов в сессии 1. В DB2 это сделать можно. И в онлайне, и в оффлайне. Покажите, как это же сделать в MSSQL. Это действительно важно по сравнением с мелочами типа reverse, про которые даже спорить нет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 18:47 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinТо, что вы показали (sp_lock, sys.dm_tran_locks ) - это просто описание блокировок и их свойств. Все то же самое есть в DB2. Ага, только в MSSQL никаких опций/настроек включать не надо на базе. Это доступно по умолчанию, что удобно! Mark BarinsteinСделайте простой тест на MSSQL с двумя сессиями и запросами в них, как я описал. Когда 2-я сессия повиснет на блокировке, запускайте что хотите с графикой или без, но вытащите историю запросов в сессии 1. В DB2 это сделать можно. И в онлайне, и в оффлайне. Покажите, как это же сделать в MSSQL. Смотрите картинку, приложенную ниже. Если и этого вам не хватит, то можно профайлер настроить так, что он будет показывать по statement выполнения процесса и будет показывать какой блок 1-ой транзакции свопит при блокировке. Замечу, что все это на локальном компьютере программиста, а не на сервере базы, что удобно и не надо каких то настроек включать на базе и можно не бояться, что логи переполнятся базы (что возможно при полном профилировании в DB2)! Mark BarinsteinЭто действительно важно по сравнением с мелочами типа reverse, про которые даже спорить нет смысла. Некрасиво соскакиваете, давайте разложим по полочкам "прелести" DB2: 1. Нет pivot и unpivot, в других современных СУБД они есть(Oracle, Mssql, Sybase) 2. Нельзя disable триггер делать, только drop/create, что ни разу не удобно! 3. В динамике в функциях -нельзя полнокровно работать с nickname 14083151 4. Нельзя в прилинкованных серверах работать с сущностями прилинкованного сервера напрямую, только через Nickname. В MSSQL можно работать напрямую, например Код: sql 1. при этом Nickname и Remote Table, MQT создавать не надо! 5. Отдельно стоит упомянуть маппинг функций на федеративных серверах. Почему то процедуры можно мапить без проблем, а вот с функциями облом 15475341 6. Не хватает распространенных стандартных функций, например Reverse 13965897 или Object_id 15152715 7. Из-за кривости реализации Federated баз, возникают проблемы при работе с NickName( 3 пункт) и MQT (блокировки при обновлении), даже Марк предлагает прикручивать репликацию 13940985 , что ведет к удорожанию поддержки таких решений. Наверное ещё чего то можно вспомнить, но хватит, выходные же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2014, 12:36 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoedАга, только в MSSQL никаких опций/настроек включать не надо на базе. Это доступно по умолчанию, что удобно!Для того, чтобы получить то, что выдают эти sp_lock, sys.dm_tran_locks, в DB2 это всё тоже доступно по-умолчанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 10:25 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinmedoedАга, только в MSSQL никаких опций/настроек включать не надо на базе. Это доступно по умолчанию, что удобно!Для того, чтобы получить то, что выдают эти sp_lock, sys.dm_tran_locks, в DB2 это всё тоже доступно по-умолчанию. Мне пришлось параметры подключать, но возможно конечно, у нас аудиторы внешние подключили до этого кучу настроек и база стала свопить, возможно админы снесли лишнее. Но в MSSQL и чтобы углубленные, детализированные данные посмотреть не нужно на сервак лазить. Ладно, Марк, сорри если чем обидел, мы все равно при своих мнениях останемся! А вас как спеца, я все равно уважаю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 10:53 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoedНекрасиво соскакиваете, давайте разложим по полочкам "прелести" DB2: .... Да я уже не знаю, как с этого бессмысленного с моей точки зрения обсуждения наличия или отсутствия разноцветных лампочек в салоне соскочить. Все ваши проблемы с федерацией можно решить правильным дизайном. А не постоянными жалобами на то, что мол, посторил я дом из кирпича методами, которыми избы из бревен сделал, а он заваливается. Вывод: кирпич ваш никуда не годится. Ну никто же не говорит, что раз в MSSQL: - нет select from (update|insert|delete) - нет аналога time-travel query - нет аналога MDC - нет multi-temperature storage - нет row-based триггеров - нет active-active кластера (аналог pureScale или RAC) - PDW (аналог DPF) сильно урезан по функциональности, работает только в виде какого-то appliance и, честно говоря, совершенно не так широко распространен для хранилищ - есть сильно урезанный по функциональности аналог refresh immediate MQT при отсутствии аналогов refresh deferred и maintained by user MQT (кто знает, зачем это все, тот сможет оценить, как без этого в хранилищах) - Resource Governor очень сильно урезан по сравнению с DB2 WLM - нет поддержки не Windows платформ то это свидетельство того, что там все плохо и оно умрет скоро. Совсем нет, они живут без всего этого, и, судя по распространенности, совсем не плохо. У всех есть свои плюсы и минусы, и у MSSQL есть преимущества перед DB2. Да, GUI, говорят, у них заметно лучше, и это иногда удобно даже для опытных, не говоря уже о начинающих. Есть и заметные технические преимущества. Но вы все время обвиняете DB2 в убогости из-за каки-то мелких функций, которые 2 раза в жизни используются и при желании быстро пишутся, если надо. Эти проблемы по сравнению с некоторомы перечисленными проблемами выше - просто ничто. Поэтому, пожалуйста, давайте закончим про эти ваши жалобы, которые вы постоянно вставляете везде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 10:57 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed, Про блокировки: а зачем вы все команды в один батч оформили (аналог compound statement в DB2). Вы что, клиентские приложения тоже так оформляете - все запросы в один батч и 1 батч на транзакцию? Вы так попробуйте: 1-сессия: update lastname ... go select * from lastname2 ... go select * from lastname2 ... go 2-сессия: update lastname ... go ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 11:02 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinmedoed, Про блокировки: а зачем вы все команды в один батч оформили (аналог compound statement в DB2). Вы что, клиентские приложения тоже так оформляете - все запросы в один батч и 1 батч на транзакцию? Вы так попробуйте: 1-сессия: update lastname ... go select * from lastname2 ... go select * from lastname2 ... go 2-сессия: update lastname ... go И что? Будет видна именно та команда, которая сейчас блокируется, это плохо? Вы же писали выше - несколько команд мне покажите, что весь стэк исторически показывается, я и показал! Сейчас не могу, пробовал на домашнем компе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 11:11 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoedИ что? Будет видна именно та команда, которая сейчас блокируется, это плохо? Вы же писали выше - несколько команд мне покажите, что весь стэк исторически показывается, я и показал! Сейчас не могу, пробовал на домашнем компе...Та команда, которая сейчас блокируется, мне не интересна - я её и так вижу в DB2 без дополнительных приседаний. Задача - получить список всех запросов сессии 1. То, что вы сделали, это оформили все 3 команды сессии 1 в 1 батч, т.е. фактически в 1 команду, а не в 3 отдельные. Я не большой специалист в MSSQL, и у меня нет его под рукой проверить. Но у меня есть подозрение, что в случае 3-х отдельных команд вам для 1-й сессии покажут только 1 последнюю, а не все 3. В таком случае вы увидите "странную" картину - 1-я сессия делает select из lastname2, а заблокирована lastname. Ну и в догонку другой вопрос: а аналог event monitor for locking в MSSQL есть? Напомню, что это как раз и есть та штука, которую на сервере надо включать. Работает оно так: при lock-timeout / deadlock / истечении некоторого времени ожидания на блокировке информация об участниках блокировки со всей их историей запросов туда сохраняется автоматически . Для чего: чтобы можно было не сидя постоянно за мониторингом, получив такое событие, пытаться в онлайне разобраться, какой именно запрос блокирует, почему, что там за план зароса и т.п. А чтобы потом сесть и спокойно разобраться со всем этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 11:39 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinmedoedНекрасиво соскакиваете, давайте разложим по полочкам "прелести" DB2: .... Да я уже не знаю, как с этого бессмысленного с моей точки зрения обсуждения наличия или отсутствия разноцветных лампочек в салоне соскочить. Все ваши проблемы с федерацией можно решить правильным дизайном. А не постоянными жалобами на то, что мол, посторил я дом из кирпича методами, которыми избы из бревен сделал, а он заваливается. Вывод: кирпич ваш никуда не годится. Ну никто же не говорит, что раз в MSSQL: - нет select from (update|insert|delete) - нет аналога time-travel query - нет аналога MDC - нет multi-temperature storage - нет row-based триггеров - нет active-active кластера (аналог pureScale или RAC) - PDW (аналог DPF) сильно урезан по функциональности, работает только в виде какого-то appliance и, честно говоря, совершенно не так широко распространен для хранилищ - есть сильно урезанный по функциональности аналог refresh immediate MQT при отсутствии аналогов refresh deferred и maintained by user MQT (кто знает, зачем это все, тот сможет оценить, как без этого в хранилищах) - Resource Governor очень сильно урезан по сравнению с DB2 WLM - нет поддержки не Windows платформ то это свидетельство того, что там все плохо и оно умрет скоро. Совсем нет, они живут без всего этого, и, судя по распространенности, совсем не плохо. У всех есть свои плюсы и минусы, и у MSSQL есть преимущества перед DB2. Да, GUI, говорят, у них заметно лучше, и это иногда удобно даже для опытных, не говоря уже о начинающих. Есть и заметные технические преимущества. Но вы все время обвиняете DB2 в убогости из-за каки-то мелких функций, которые 2 раза в жизни используются и при желании быстро пишутся, если надо. Эти проблемы по сравнению с некоторомы перечисленными проблемами выше - просто ничто. Поэтому, пожалуйста, давайте закончим про эти ваши жалобы, которые вы постоянно вставляете везде. Тээкс: >> -нет select from (update|insert|delete) Тут вы ошибаетесь - есть, по моему с 2008 версии! >>- нет поддержки не Windows платформ Тут соглашусь, но есть у Oracle, так что тут DB2 не выделиться! Все остальное, честно даже не знаю как комментировать, не встречал и за 5-ть лет работы ограничений и необходимости в этих фичах, ни разу!!! Насчет хранилищ разговора не было, да и Oracle хранилища и Terradata, мне кажется более распространены, во всяком случае в России, да и в мире тоже! >>и при желании быстро пишутся, если надо На java например. Это даже комментировать не буду! Но впрочем adieu! Кто хотел, тот услышал! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 11:39 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed>> -нет select from (update|insert|delete) Тут вы ошибаетесь - есть, по моему с 2008 версии!Пример покажете? А то я тут не нашел: SELECT (Transact-SQL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 12:02 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinmedoed>> -нет select from (update|insert|delete) Тут вы ошибаетесь - есть, по моему с 2008 версии!Пример покажете? А то я тут не нашел: SELECT (Transact-SQL) Ну по мне похожая вещь output clause Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 12:22 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed, "посонам" для начала нужно прочитать документацию. При этом на redbook полно гайдов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 14:37 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
A.Panskikhmedoed, "посонам" для начала нужно прочитать документацию. При этом на redbook полно гайдов Ню ню! Ну дык я делал как Марк, в своей время потратил 3-ри дня, добавлял какие то опции на базу. Делал job -ы и сохранял инфу для логов в таблицы. А в MSSQL, есть стандартная программулина, я тут ScreenShort выкладывал. Поставил бы ее себе на пару деньков и алдминам и все. Временных затрат меньше! Да и вообще у MSSQL много утилит , что удобно! P.S. Пока не будет нормального GUI интерфейса у DB2, она будет далеко позади . Даже на те редкие весчи, которые я ни разу не юзал, но Марк их старательно перечислил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 15:36 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed Пока не будет нормального GUI интерфейса у DB2, она будет далеко позади "мыши кололись, плакали, но продолжали жрать кактус" Представляю какую глубокую душевную травму несовместимую с жизнью нанес бы DB2 Control/Command Center версий эдак 5,6,7 P.S. "Детский сад - штаны на лямках", ей-богу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 16:35 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
mitekmedoed Пока не будет нормального GUI интерфейса у DB2, она будет далеко позади "мыши кололись, плакали, но продолжали жрать кактус" Представляю какую глубокую душевную травму несовместимую с жизнью нанес бы DB2 Control/Command Center версий эдак 5,6,7 P.S. "Детский сад - штаны на лямках", ей-богу Ну не, почему штаны на лямках, я даже на ассемблере что то писал и на Fortran под windows 3.11, но когда это было! Сейчас 21 век, айфоны, андроиды, онлайн сервисы кругом, уже нереляционные базы пошли NoSql. А DB2 скрипты и батники, убогие интерфейсы, ню ню! Путь в никуда, имхо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 17:18 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed Пока не будет нормального GUI интерфейса у DB2, она будет далеко позади . Даже на те редкие весчи, которые я ни разу не юзал, но Марк их старательно перечислил Вот я тоже так считал лет так больше двадцати лет назад, переходя на db2 с прародителя ms sql - sybase sql anywhere. Молодость, она проходит. Еще раз рекомендую начать с чтения документации (RTFM), а Марка использовать как эксперта, а не филиал гугля. DB2 как промышленная система в бОльшей степени предназначена для автономной работы больших систем. Поэтому мышководческих интерфейсов немного, зато возможности скриптования несравнимы. И именно поэтому изучают и настраивают систему совсем не так, как в сиквеле. Сравнение здесь не стиральных машин, а как пыжо с катерпиллером, бытового инструмента и профессионального. Возвращаясь к исходному вопросу. Промышленная система обрабатывает огромное количество транзакций и включение любых мониторов производится с крайней осторожностью, чтобы не получить деградацию производительности или стабильности системы. Узнать область, откуда растет странное соотношение commit/rollback можно из монитора транзакций. Дальше оттрассировать работу приложения, даже отдельного конкретного коннекта. Со стороны сервера наиболее четко можно определить нагрузку с точки зрения физики, посмотреть на конкуренцию. Со стороны приложения, включив трейс на клиенте, получим инфу в части обмена между клиентом БД и приложением, соответственно разобремся с логикой. По блокировкам. Включив, как я уже написал, DB2_CAPTURE_LOCKTIMEOUT=ON мы получаем автоматически создаваемые отчеты в каталоге с db2diag. В отчете содержится информация по типу блокировки и событию (deadlock/locktimeout), параметры соединений, вошедших в клинч, запросы, если возможно. Этот вариант мониторинга не напрягает сервер и спокойно используется для прода, тем более что промышленные сервера настраиваются на автоматическое разрешение конфликта. На тестовых системах используют уже трассировку, например, event monitor for locks, который соберет и выдаст всю историю транзакций, вошедших в ступор. Если надо будет именно на проде, настроивается точечно с минимальным воздействием на производительность. Andy P.S. Сcылка про "T-SQL язык года" - как можно сравнивать в одной таблице C и T-SQL? Килограмм используется чаще сантиметра, а планковская система вообще, тогда, полный отстой! Детский сад с барабаном, младшая группа. mySQL, Access и Excel используются на несколько порядков чаще - отправим MS SQL "ф топку" вместе со всеми остальными субд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 17:31 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
A.Panskikhmedoed Пока не будет нормального GUI интерфейса у DB2, она будет далеко позади . Даже на те редкие весчи, которые я ни разу не юзал, но Марк их старательно перечислил Вот я тоже так считал лет так больше двадцати лет назад, переходя на db2 с прародителя ms sql - sybase sql anywhere. Молодость, она проходит. С высоты ваших лет, оно конечно виднее и я бы даже сказал круто, но за эти годы и MSSQL далеко вперед ушёл,вы об этом не задумывались? A.PanskikhЕще раз рекомендую начать с чтения документации (RTFM), а Марка использовать как эксперта, а не филиал гугля. Ну как бы стараюсь, но это знать что искать, некоторые команды или решения в DB2 не тривиальны, тут Марк и выручает A.PanskikhDB2 как промышленная система в бОльшей степени предназначена для автономной работы больших систем. Поэтому мышководческих интерфейсов немного, зато возможности скриптования несравнимы. И именно поэтому изучают и настраивают систему совсем не так, как в сиквеле. Сравнение здесь не стиральных машин, а как пыжо с катерпиллером, бытового инструмента и профессионального. Возвращаясь к исходному вопросу. Промышленная система обрабатывает огромное количество транзакций и включение любых мониторов производится с крайней осторожностью, чтобы не получить деградацию производительности или стабильности системы. Узнать область, откуда растет странное соотношение commit/rollback можно из монитора транзакций. Дальше оттрассировать работу приложения, даже отдельного конкретного коннекта. Со стороны сервера наиболее четко можно определить нагрузку с точки зрения физики, посмотреть на конкуренцию. Со стороны приложения, включив трейс на клиенте, получим инфу в части обмена между клиентом БД и приложением, соответственно разобремся с логикой. Исходный вопрос давно решен, криво разработано стороннее ядро системы, это мое имхо!!! Далее по тексту, много красивых слов, но по слухам и моей небольшой практике, Oracle такая же мощная или мощнее СУБД (как и DB2), а разобраться с проблемами там попроще, имхо! И в чем же такая исключительность DB2, она такая неудобная и непонятная, но зато за неё хорошо платят, да? A.PanskikhПо блокировкам. Включив, как я уже написал, DB2_CAPTURE_LOCKTIMEOUT=ON мы получаем автоматически создаваемые отчеты в каталоге с db2diag. В отчете содержится информация по типу блокировки и событию (deadlock/locktimeout), параметры соединений, вошедших в клинч, запросы, если возможно. Этот вариант мониторинга не напрягает сервер и спокойно используется для прода, тем более что промышленные сервера настраиваются на автоматическое разрешение конфликта. На тестовых системах используют уже трассировку, например, event monitor for locks, который соберет и выдаст всю историю транзакций, вошедших в ступор. Если надо будет именно на проде, настроивается точечно с минимальным воздействием на производительность. Я не хочу лазить на сервак,я не админ. 90% выявляю проблем и ладно, а логи сервака читать - это скорее к админам, пусть радуются прелестям DB2 и её нативному интерфейсу ! A.PanskikhP.S. Сcылка про "T-SQL язык года" - как можно сравнивать в одной таблице C и T-SQL? Килограмм используется чаще сантиметра, а планковская система вообще, тогда, полный отстой! Детский сад с барабаном, младшая группа. mySQL, Access и Excel используются на несколько порядков чаще - отправим MS SQL "ф топку" вместе со всеми остальными субд? У вас раздвоение личности или зачем вы тут о барабанах, есть вакансии/программисты чисто t-sql (базисты), а есть чистые C# Есть бизнес системы, в которых бизнес логика на T-SQL, есть которые на C#. Вот и сравнивают количество вакансий и предложений на рынке труда, если угодно, технологии для старта новых проектов! И часто видели вы учетные или ERP мощные системы, которые используют Access и Excel? Батенька, срочно дайте мне той же травы, что и вы потребляете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 17:51 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoedС высоты ваших лет, оно конечно виднее и я бы даже сказал круто, но за эти годы и MSSQL далеко вперед ушёл,вы об этом не задумывались? Учитывая, что в Оракл, MSSQL & DB2 использовались и используются мною на практике очень много лет, мне есть с чем сравнивать. И выбор той или иной системы делается в зависимости от класса задачи, а не личных преференций. Количество выпущенных жигулей и феррари, если Вам так понятнее, не делает первые лучше или хуже, но дает огромное количество рабочих мест - сервисов, производителей запчастей и синих писалок, + армию их водителей. Назовем жигули из-за этого автомобилем всех времен и народов? А феррари - отстой: их мало, цена где-то за горизонтом, а без подготовки на ней даже с места тронуться не удастся, да и мешок картошки в багажник не запихнешь? Жигули может любой пту-шник разобрать и собрать по винтикам, а вот вокруг феррари придется попрыгать команде инженеров с тучей оборудования - опять феррари плохой авто? "Нетривиальность" DB2 не ее проблема - технической информации более чем достаточно для самостоятельного изучения. Если ранее было знакомство с MSSQL - "Microsoft SQL Server to IBM DB2 UDB Conversion Guide" поможет на первом этапе. Если самому трудно, можно сходить на курсы, которые зададут направление для развития. Но без желания, способностей и базового высшего технического образования, освоить 20 тыс страниц документации, чтобы стать специалистом, не получится. Поэтому конференции в инете по db2 пустые, пока не появляется очередной мышковод, нежелающий прочитать документацию. Но он либо одумается, либо его задавят интеллектом старые бородатые дядьки. :) Andy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2014, 10:20 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
[/quot] Учитывая, что в Оракл, MSSQL & DB2 использовались и используются мною на практике очень много лет, мне есть с чем сравнивать. И выбор той или иной системы делается в зависимости от класса задачи, а не личных преференций. Количество выпущенных жигулей и феррари, если Вам так понятнее, не делает первые лучше или хуже, но дает огромное количество рабочих мест - сервисов, производителей запчастей и синих писалок, + армию их водителей. Назовем жигули из-за этого автомобилем всех времен и народов? А феррари - отстой: их мало, цена где-то за горизонтом, а без подготовки на ней даже с места тронуться не удастся, да и мешок картошки в багажник не запихнешь? Жигули может любой пту-шник разобрать и собрать по винтикам, а вот вокруг феррари придется попрыгать команде инженеров с тучей оборудования - опять феррари плохой авто? "Нетривиальность" DB2 не ее проблема - технической информации более чем достаточно для самостоятельного изучения. Если ранее было знакомство с MSSQL - "Microsoft SQL Server to IBM DB2 UDB Conversion Guide" поможет на первом этапе. Если самому трудно, можно сходить на курсы, которые зададут направление для развития. Но без желания, способностей и базового высшего технического образования, освоить 20 тыс страниц документации, чтобы стать специалистом, не получится. Поэтому конференции в инете по db2 пустые, пока не появляется очередной мышковод, нежелающий прочитать документацию. Но он либо одумается, либо его задавят интеллектом старые бородатые дядьки. :) Andy[/quot] Вы говорите в прошедшем временем, о своей работе с разными СУБД, вот вы наверняка DB2 10 пробовали, читали доку, тестили или даже работаете с ней! А MSSQL 2012 юзали, тестили? Может конечно, наши взгляды рознятся, потому как вы админ, а я разработчик, надеюсь разница в возрасте и ваш консерватизм, не мешает нашим спорам : Но вот например фича, удобная для меня как разработчика Код: sql 1. - типа попытайся сконвертить, нет верни NULL. Ну нет прям такого аналога в DB2: Код: sql 1. , выдаст ошибку. Я с вами категорически не согласен насчет сравнения с машинами. Я бы сказал так: MSSQL - Мерседес (удобно, плавно, все понятно, конечно не гипер скорость, но быстрота и не всегда нужна); Oracle - Ферари (настройки потяжелее, но как разберешься, обгонишь мерседес); DB2 - Рено Логан и нет такого комфорта, как в MSSQL и нет такой скорости как в Oracle (Мерседес и Ферари). А насчет курсов уже нет смысла, наша компания переходит с DB2, на MSSQL. О чем я не жалею. В резюме я поставил строчку разработка под DB2 - год опыта и на том спасибо. А так всем своим знакомым по работе никогда СУБД DB2 не пожелаю, если тока врагам чтоб они зае*ались ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2014, 11:24 |
|
||
|
Колич-во commit и rollback - непонятно...
|
|||
|---|---|---|---|
|
#18+
medoed, Нет, не уходите с DB2! Вот вам такая же функция: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Вам теперь хоть немного легче? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2014, 11:39 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38576603&tid=1601148]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 296ms |
| total: | 463ms |

| 0 / 0 |
