Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
Вот пытаюсь разобраться со всевозможными РСУБД и понять, что лучше использовать да работы с ОЧЕНЬ сложной структурой объектной классификации... Интересует следующий вопрос. Чем лухше (хуже) Microsoft SQL 2000 чем другие субдешки? (Postgre, SyBase, InterBase, MaxDB by MySQL, InferMix и еще че-нть) Интересуют ценовые, функциональные, скоростные аспекты и области применени тех или иных баз. Все, что я пока понимаю, так это то, что MS SQL весьма похошь (сродни) с Sybase'ом, и InterBase их в некоторых принципиальных вопросах зранения самих баз "обходит". На самом деле можно воспринимать вопрос как анализ всех РСУБД. Помогите. На самом деле очень нужна ваша помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 17:19 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
Все, что я пока понимаю, так это то, что MS SQL весьма похошь (сродни) с Sybase'ом, и InterBase их в некоторых принципиальных вопросах зранения самих баз "обходит". Страшно интересно - это в каких еще и "принципиальных вопросах" Interbase их обходит? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 17:22 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
Я даже и не знаю, чего тут сказать, когда нужно сравнивать с InterBase, MaxDB by MySQL, InferMix и еще че-нть - я из них даже гнекоторые и не слышал. ЗЫ Как сравнить трактор и сенокосилку?????? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 17:58 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
--что лучше использовать да работы с ОЧЕНЬ сложной структурой объектной классификации... насколько сложной ? теоритически да и прктически любую сложную структуру можно свернуть в одну таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 18:40 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
попробуйте на MS SQL реализовать подобное: Код: 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. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 11:49 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
Страшно интересно - это в каких еще и "принципиальных вопросах" Interbase их обходит? :) Ну навскидку: FireBird - Версионник - Имеет такой тип данных как ARRAY - Имеет такую фичу как EVENT - Многоплатформенный - Бесплатный Зато MSSQL - Блокировочник - Имеет отличный оптимизатор запросов - лучше держит большое количество коннектов - Имеет более продвинутый T-SQL и т.д. По-моему это уже было:-))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 12:37 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
gardenman попробуйте на MS SQL реализовать подобное: Триггера - реализуемы. Некоторые как after, некоторые как instead (честно говоря толком не смотрел, какие как кто). Один - просто FK, как я понял. Рекурсивные выборки - как table UDF. Согласен, не так изящно, но реализуемо :-) Кста, некоторые триггера можно и несколько эффективнее написать (при проверке на невозможность удаления родительского узла нет необходимости считать к-во дочерних узлов, надо просто узнать, есть ли хоть один, но, возможно, это просто осбенность реализации приведенного триггера). И, насколько я понял, в MS SQL можно построить дерево в одной транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 17:49 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
>Кста, некоторые триггера можно и несколько эффективнее написать (при проверке на невозможность удаления родительского узла нет необходимости считать к-во дочерних узлов, надо просто узнать, есть ли хоть один, но, возможно, это просто осбенность реализации приведенного триггера). - вот с этим согласиться можно... А вот как быть с триггерами for each row? триггеры - insted of - эт вааще - отстой. Они на вьюшках, и работают медленнее. >И, насколько я понял, в MS SQL можно построить дерево в одной транзакции хм...) Хорошее заявление...)) конечно можно, если сначала отменить действие триггеров а потом вставить)) - но это абсолютно неправильно. Вообще, вставлять узлы пачками я бы не стал... мало ли чего можно в пачке накатать. А как насчет промежуточных группировок GROUPINGSET? а операторы CUBE ROLLUP? Но факт есть факт - реализация языка запросов для MS SQL отстает от DB2 и ORACLE очень сильно. Да и вообще в базах данных ток IBM и Oracle разбираются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 18:08 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
for each row - ручками, открываем курсор по inserted/deleted и вперёд :-) instead of - он и для табличек тоже, насколько я знаю. Насчет скорости - не имею понятия, триггера использовал только пару раз (у меня к ним стойкое предубеждение сложилось в 6.5, а затем пообвыкся без них. Сейчас, говорят, всё значительно лучше). По поводу GROUPINGSET и CUBE ROLLUP - это о чем мы? А ежели брать конкретную задачу, как то: 1. Запретить зацикливание 2. Запретить ссылаться на несуществующую запись 3. Запретить удалять предка, у которого есть доченрние записи. 4. Получить полный путь узла. 5. Получить вложенность То это реализуется 1 FK(защита от ссылок на несуществующие записи), 1-м триггером(защита от зацикливания), и 2-мя функциями (получение списка предков и получение вложенности). Для пущего понту можно организовать уровень вложенности как computed column в таблице :-) Правда, не рекомендую всё-же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 18:34 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
gardenman -- Запрещаем ссылку на несуществующие записи -- при добавлении новой записи -- Побочный эффект - не позволяет строить -- дерево в одной транзакции А вот были бы триггеры - insted of - можно было бы и в одной транзакции сделать, но вот нельзя в Оракле реализовать подобное :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 20:38 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
... и делается это без всякой отмены действий триггеров - на то они и insted , что работают вместо действия. А что касается триггеров for each row - и хорошо что их нет. Надо с данными работать, а не с записями. Трудно удержаться: Но факт есть факт - реализация языка запросов для ORACLE отстает от MS SQL очень сильно. Да и вообще в базах данных ток MS разбирается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 21:00 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
не хочу расстраивать но тригеры insted of в оракле очень давно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 00:14 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
SergSuper\r Трудно удержаться: \r Но факт есть факт - реализация языка запросов для ORACLE отстает от MS SQL очень сильно. Да и вообще в базах данных ток MS разбирается...\r \r Давно я так не смеялся. Класная шутка. \r А если это не шутка. то /topic/60927 и последние страницы читать вдумчиво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 03:33 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
gardenman А вот как быть с триггерами for each row? Курсор, только у меня почему-то 95% триггеров работает без курсоров :( Как быть? :)) gardenman триггеры - insted of - эт вааще - отстой. Они на вьюшках, и работают медленнее.Работают они и на таблицах, а почему отстой, почему медленнее? gardenman А как насчет промежуточных группировок GROUPINGSET?Просвети, что это такое - возможно есть решение. gardenman а операторы CUBE ROLLUP? ROLLUP есть и MS SQL gardenman Но факт есть факт - реализация языка запросов для MS SQL отстает от DB2 и ORACLE очень сильно. Да и вообще в базах данных ток IBM и Oracle разбираютсяВ приведенной чуть выше ссылке уже был один, который даже тему не прочитал :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 09:48 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
2 locky > 5. Получить вложенность То это реализуется 1 FK(защита от ссылок на несуществующие записи), 1-м триггером(защита от зацикливания), и 2-мя функциями (получение списка предков и получение вложенности). Для пущего понту можно организовать уровень вложенности как computed column в таблице :-) Правда, не рекомендую всё-же... Внешний ключ?... хорошо подумал? Ну ты совсем не Штирлиц))) Штирлиц подумал , ему понравилось, и он подумал еще раз...)) учись у Штирлица) FK в таблице на саму себя?..) Я праильно понял? Интересно, а корневые элементы как буим делать? Зацикливание в дереве может возникнуть по нескольким причинам: 1) изменение ParentID - тут все понятно. 2) Вставка в дерево сразу нескольких записей в одной транзакции в которых уже имеется зацикливание. при вставке нескольких элементов есть вероятность того, что какая-то запись не вставицца, если данные были подготовлены криво,(как правило у всех программеров руки слегка кривоваты) поэтому лучше все делать последовательно закомитив. ИМХО модель БД (таблицы, индексы, триггеры) должна сама себя защищать от кривизны рук программистов, к чему я и стремлюсь всегда всеми силами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:12 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
GROUPING - оператор, позволяющий в SELECT выводить строки с промежуточными итогами по группам. В результате отчет формируется запросто одним единственным запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:15 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
И еще одно - Db2 - единственная база, которая поддерживает C++ в полной мере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:17 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
Нет проблем - пиши на С++. Какого хрена тогда тут тебе по MS SQL надо спрашивать? Если ты такой умный? ЗЫ Я не против сравнения, но именно ТАК..... Это в цирке надо товарищу выступать. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:29 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
прости, Тигра, больше не буду ругать MS SQL... Просто скучно мне было...))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:35 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
По моему GROUPING есть в любом СУБД, во всяком случае известном мне (MSSQL, Sybase ASE, Sybase ASA). С деревьями тоже проблем не вижу - если ParentID NULLABLE, то FOREIGN KEY спокойно прокатывает. Насчет поддержки C++ не понял - по моему в любой СУБД можно спокойно писать расширенные хранимые процедуры на C или Java (вместо нее MSSQL скоро будет держать C#). С другой стороны не помню еще случая, когда мне бы понадобилось вместо обычной ХП накатать ее на C или Java. Разве что подумываю парсер SQL пристроить для собственных нужд, но это к СУБД на самом деле никакого отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:37 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
2gardenman ну да, FK сам на себя.... А что? А корневые элементы, к примеру, с NULL в ParentId. DB2 такое не умеет? Не знал :-( Я, правда, о ней почти ничего не знаю, кроме самого факта существования и чьей-то реплики " когда-то у DB2 был самый лучший оптимизатор". По поводу проверки зацикливания. При срабатывании триггера after в базе вроде как уже записано дерево. Что мешает проверить его на зацикленность и при необходимости откатить транзкцию? И какая при этом разница, одну я запись вставил, или 20? groupingset и cube rollup - попробуйте почитать BOL select... group by ... with rollup/cube - может быть это то, что Вы имеете в виду? "Единственная... котороая поддерживает C++ в полной мере" Мне казалось, что сервера БД должны поддерживать стандарты SQL.... :-) Ну хоть как-нибудь :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 11:42 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
lockygroupingset и cube rollup - попробуйте почитать BOL select... group by ... with rollup/cube - может быть это то, что Вы имеете в виду? Если это мне :), то я знаю, что есть GROUPING и CUBE/ROLLUP. Если GROUPINGSET тоже самое, то все понятно, если нет - хотелось бы услышать и объяснения :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 12:24 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
2AAron Не, не Вам :-) Кста, вспомнилось - в select есть еще compute by.. В продолжение флейма: я могу написать запрос, который ни в жисть не напишешь на DB2 :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 12:36 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
Самое интересное что возможность исользовать SP на СLR .Net первым сделал IBM а не Microsoft :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 12:49 |
|
||
|
Сравнительный анализ MS Sql и другие...
|
|||
|---|---|---|---|
|
#18+
автор Самое интересное что возможность исользовать SP на СLR .Net первым сделал IBM а не Microsoft :) Ну, ведь и IBM надо хоть что-то делать, правда? ;-) Не выходит с SQL, переключимся на процедурные языки.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32388271&tid=1554197]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 179ms |
| total: | 280ms |

| 0 / 0 |
