Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
занимаюсь тем что проверяю функциональную идеинтичность триггеров для DB/2 8.2 и MS SQL2000 для продукта, работающего с обоими платформами. Если в DB/2 что нибудь типа как бинарная переменная в MSSQL содержащая взведенные биты для измененных колонок - уж больно тоскливо видеть сотни строк кода делающих тоже самое пyтем дублирования для каждого поля конструкций типа : Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 19:31 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
если точнее сформулировать, то нужно составить в триггере список изменных колонок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 21:38 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
есть тип данных: CHAR(n) FOR BIT DATA ты это имел в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 10:31 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Нету. Вот как делал аудит я: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:18 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:18 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
то есть так Код: plaintext 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. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:20 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Пусть исходная таблица такая: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:22 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Скрипт к ней прибавит: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:23 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 13:25 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaНету. Вот как делал аудит я: спасибо - это не совсем аудит - скорее консолидированная таблица изменений в базе, для того чтобы сервера приложений не сканили периодически все таблицы, а читали только те изменения в которых заинтересованы на основании этой таблицы изменений. Поэтому на ряде таблиц стоят триггера на изменения, а поскольку полей десятки у ряда таблиц, того коду приходится генерировать море. И что самое противное на каждое блобное поле приходится заводит отдельный триггер. Что-то совсем тоскливо в DB2 :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 17:27 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
вот что ответили в IBM IBM is aware of this and supposedly is high on their customer wish list нетороплива дела делают в голубом гиганте. в мелкософта это было еще в предидущей версии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 19:37 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Lepsik спасибо - это не совсем аудит - скорее консолидированная таблица изменений в базе, для того чтобы сервера приложений не сканили периодически все таблицы, а читали только те изменения в которых заинтересованы на основании этой таблицы изменений. ... какие-то непривычные (для меня) сервера ... ... а репликация "не-DB2"->"что-то" (DB2 или не-DB2) в Information Integrator у IBM сделана на таком же принципе (генерируются примерно такие же триггеры и таблицы) ... И что самое противное на каждое блобное поле приходится заводит отдельный триггер. Почему? Что-то совсем тоскливо в DB2 :( Потому что вы смотрите с точки зрения "есть в MSSQL - нет в DB2", и не изучаете обратное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 23:12 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Lepsikвот что ответили в IBM IBM is aware of this and supposedly is high on their customer wish list нетороплива дела делают в голубом гиганте. в мелкософта это было еще в предидущей версии А в мелкософте уже появились рекурсивные запросы? В DB2 (в той, что ранее Common Server, теперь UDB for LUW) это было ещё во второй версии (а может, было даже в первой). И как там Юкон поживает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 23:15 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Я, конечно, могу сильно ошибаться, но imho задачу можног решить Q Replication Event Publishing. Это дает возможность публиковать в виде XML через MQ message изменения строк (всех или по условию WHERE), изменение отдельных колонок, изменение строки при изменении колонок которые не мониторятся, before and after значение и многое еще чего. Любое приложение может subscribe на интересующие его публикуемые изменения. Полученую инфу приложение может хоть в базу (учитывая, что это все-таки XA compliant среда) под управлением транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 12:33 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Я конечно не спец по DB2, но в ней есть CREATE EVENT MONITOR который вроде как и предназначен для аудита. Количество возможных опций у этого оператора наводит на мысль, что триггер писать не придется.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 18:28 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
ну тогда надо сперва выяснить - надо изменившиеся данные захватывать, или аудит. Все-таки разные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 19:06 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa ... какие-то непривычные (для меня) сервера ... ... а репликация "не-DB2"->"что-то" (DB2 или не-DB2) в Information Integrator у IBM сделана на таком же принципе (генерируются примерно такие же триггеры и таблицы) ... это наши, доморощенные сервера - почту обрабатывают. И что самое противное на каждое блобное поле приходится заводит отдельный триггер. это наш db2 девелопер так утверждает. что у clob/blob полей другая специфика и сравнивать вот таким способом : Код: plaintext 1. 2. 3. 4. 5. не получится Потому что вы смотрите с точки зрения "есть в MSSQL - нет в DB2", и не изучаете обратное? в db2 есть много хороших вещей, но это как бы очевидная потребность. --И как там Юкон поживает? Юкон довольно хорош. Одно из приложений заставил подключится к Юкону - заработало как с родным, без всякого шаманства. --ggv --Сообщений: 854 Я, конечно, могу сильно ошибаться, но imho задачу можног решить Q Replication Event Publishing. для данной задачи это будет уже стрельбой из пушек по воробьям. Хотя в другой задаче - у меня используется встроенная система нотификации сервером об изменениих в базе - но там это решаемо, потому как его триггера генерятся для заданного набора таблиц скриптом и загенерить список полей не проблема. -CREATE EVENT MONITOR спасибо посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 23:38 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Да, BLOB'ы так легко не сравниваются, но зачем другие триггера?. А написать пару UDF на C - и они будут сравниваться ещё проще ;-). if my_blob_equals(f1,f2)<>0 then ... Впрочем, с BLOB'ами я дел не имел - мог что-то упустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 21:32 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Посмотрел доку по триггерам - упоминаний про LOB'ы нет вообще. А что может быть запихнуто в несколько триггеров, может быть запихнуто и в один. Не представляю себе задачу с вашими триггерами. Подозреваю, что делал бы её как-то по другому, и знание, какое поле изменилось, просто бы не понадобилось. Интересно было бы также посчитать нагрузку на диски и сетевой трафик в вариантах, когда 1) проверяют, какие поля изменились 2) не проверяют - достаточно факта изменения записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 22:52 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaДа, BLOB'ы так легко не сравниваются, но зачем другие триггера?. А написать пару UDF на C - и они будут сравниваться ещё проще ;-). if my_blob_equals(f1,f2)<>0 then ... Впрочем, с BLOB'ами я дел не имел - мог что-то упустить. то есть если блобы по паре гиг кажный, мне нужно сравнить 2 потока чтобы понять менял ли их сервер ? не проще ли серверу хранить флажки где и чего он там менял. Чего же уж проще можно придумать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 23:33 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Ночью я таки догадался, зачем ваш db2 девелопер использует для LOB'ов отдельные триггеры. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Чего я не понимаю, это a) что есть @Details в Код: plaintext 1. 2. 3. b) зачем нужно изменять LOB'ы и отслеживать это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 08:58 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaНочью я таки догадался, зачем ваш db2 девелопер использует для LOB'ов отдельные триггеры. дак естественно, но уж больно громозко получается. Чего я не понимаю, это a) что есть @Details в Код: plaintext 1. 2. 3. это просто сливаются в строчку имена проапдейтеных колонок. скорее для аудита, чем для работы. Хотя я логику приложений не смотрел - может кто и парсит b) зачем нужно изменять LOB'ы и отслеживать это. у нас они мелкие пароли храним закодированые, да всякую мелкую бинарную информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 09:16 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
И всё-таки? @Details это переменная - куда она (её содержимое) потом девается? Как осуществляется взаимодействие между триггерами (в контексте использования @Details)? Зачем нужно держать пароли в LOB'ах, когда есть CHAR/VARCHAR FOR BIT DATA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 10:12 |
|
||
|
updated columns in trigger
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaИ всё-таки? @Details это переменная - куда она (её содержимое) потом девается? в поле таблицы изменений вставляется, приложения смотрят последние изменения в базе и анализируют что нужно читать и откуда. -- Как осуществляется взаимодействие между триггерами (в контексте использования @Details)? никак. --Зачем нужно держать пароли в LOB'ах, когда есть CHAR/VARCHAR FOR BIT DATA? да, пароли в CHAR/VARCHAR FOR BIT , документы, графику и прочее подобное в блобах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 17:37 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=142&tid=1605751]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 271ms |
| total: | 419ms |

| 0 / 0 |
