Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
to Paul Atreidies: Например в Oracle в тврем конкретном примере, не надо так извращаться, просто Oracle поддерживает иерархические запросы в SQL. А так же в SQL есть аналитические функции которые обладают очень большими возможностями. Принцип работы аналитических функций можно представить примерно следующим образом. Допустим, что у нас есть результирующий набор данных, полученный в результате некоторой выборки. Этот набор данных может быть еще не отсортирован предложением ORDER BY, но все соединения и все условия WHERE, GROUP BY, HAVING уже выполнены. На каждую запись в этом наборе накладывается "рамка", размеры и положение которой определяются в соответствии с некоторым аналитическим условием. Через эту рамку мы как бы видим не только саму текущую запись, но и некоторые соседние с ней, т.е. целую группу записей. (Впрочем, рамка может быть наложена таким образом, что в нее попадают не соседние, а другие записи, и даже сама текущая запись не обязана попадать в рамку). Эта рамка называется "окном" (window) текущей записи. Аналитическая функция для текущей записи вычисляет агрегированное значение над группой "видимых через окно" записей. По мере "продвижения" по курсору изменяется текущая запись, для каждой из них определяется свое окно. При этом размер и положение окна могут меняться. Поэтому говорят, что окно является "скользящим" (sliding window). Размер окна может зависеть как от физического количества строк, так и логического интервала, такого, например, как время. еще тут http://www.interface.ru/oracle/anal-itiv.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2003, 21:01 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Paul Atreidies > Поддерживает ли сервер рекурсию (хоть какую) в операторе SELECT?. Оракл - Да Оракл поддерживает рекурсивные запросы с версии 8, а может раньше. Вопрос: Поддерживается ли операция MINUS над множествами (т.е. в запросах, по аналогии с UNION)? Оракл, ДБ2, postgreSQL (по-моему) - да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 01:01 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
> Зеркалирование транзакционного лога: MS SQL - Нет. А зачем этим заниматься серверу базы данных ? Например нет денег на аппаратный RAID. Встречается сплошь и рядом на Оракловых серверах в нашей "богатой" стране. Думаю на МSSQL-инсталляциях этот процент еще выше. Или в MS не страшно потерять лог? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 01:44 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Ту х: Согласованность по чтению на уровне транзакций есть у MSSQL без мультиверсионности? Пример. Два прользователя. Момент времени 1. Первый пользователь открывает транзакцию, что-то делает. Второй делает апдейт таблицы2. Момент времени 2. Второй читает из таблицы2. Второй еще что-то делает. Оракл дает гарантию, что в момент времени 2 первый пользователь получит данные из таблицы 1 на момент времени 1. MSSQL не дает такой гарантии имхо. Поправьте, если я не прав. ЗЫ: вообще-то я работаю с сиквелом, с ораклом только начинаю знакомиться, и различия достаточно хорошо видны. По поводу зеркалирования лога: мелочь, а приятно. Отказоустойчивость повышается избыточностью в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 08:51 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 SiDen Согласованность по чтению на уровне транзакций есть у MSSQL без мультиверсионности? Пример. Два прользователя. Момент времени 1. Первый пользователь открывает транзакцию, что-то делает. Второй делает апдейт таблицы2. Момент времени 2. Второй читает из таблицы2. Второй еще что-то делает. Оракл дает гарантию, что в момент времени 2 первый пользователь получит данные из таблицы 1 на момент времени 1. MSSQL не дает такой гарантии имхо. Поправьте, если я не прав. Да есть (а иначе как бы работали на MS SQL). Но достигается другим способом - блокировками. (Мне тоже значительно больше нравится вариант с многоверсионностью) По поводу зеркалирования лога: мелочь, а приятно. Отказоустойчивость повышается избыточностью в данном случае. Это просто рудимент позавчерашнего дня. Зеркалирование давным давно встроено в операционные системы, а теперь и в большинство материнских плат (если уж не хватило денег на нормальный RAID). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 09:54 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
По поводу зеркалирования лога: мелочь, а приятно. Отказоустойчивость повышается избыточностью в данном случае. Это просто рудимент позавчерашнего дня. Зеркалирование давным давно встроено в операционные системы, а теперь и в большинство материнских плат (если уж не хватило денег на нормальный RAID). Зеркалирование в данном случае защищает ещё и от ошибки обслуживающего персонала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 10:05 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
>Это просто рудимент позавчерашнего дня. Зеркалирование давным давно встроено в операционные системы, а теперь и в большинство материнских плат (если уж не хватило денег на нормальный RAID). Это не рудимент, а просто гибкость продукта. RAID не защитит от программного сбоя, ошибки сервера. Дублирование лога от части ошибок может защитить. По крайней мере в Oracle. Имел как-то разговор с одним забугорным админом. Для них самый важный критерий при построении системы была надежность. Так вот логи у него дублировались, каждая копия шла на отдельный RAID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 10:15 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 killed & Scott Tiger Зеркалирование в данном случае защищает ещё и от ошибки обслуживающего персонала. RAID не защитит от программного сбоя, ошибки сервера. Дублирование лога от части ошибок может защитить Поясните, не въезжаю. От каких таких ошибок программное зеркалирование защищает лучше аппаратного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 10:22 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
ну самый простейший вариант - это ошибка файловой системы. RAID кстати тоже небезупречен. Ну например может отказать батарея кэша в самый неподходящий момент. Я понимаю, что вероятность отказа современных RAID-контроллеров не так уж и велика. Хотя если речь об интегрированных в мать поделках ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 10:55 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Ту х: Вы имеете в виду ручное блокирование? Т.е. в приведенном примере после открытия транзакции я должен залочить все используемые таблицы для селектов? Что бы никто ничего не изменил до того, как в транзакции я дойду до того места что бы выбрать оттуда данные. Хотя я конечно согласен, что реализовать это можно. По условиям топикатора все проходит, согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 11:03 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 SiDen Вы имеете в виду ручное блокирование? Т.е. в приведенном примере после открытия транзакции я должен залочить все используемые таблицы для селектов? Что бы никто ничего не изменил до того, как в транзакции я дойду до того места что бы выбрать оттуда данные. Хотя я конечно согласен, что реализовать это можно. По условиям топикатора Ну вы уж совсем не уважаете Microsoft :) Нет, конечно, не ручное - автоматическое. Кстати это не такая уж редкость. Также у Sybase, также было у Watcom. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 12:12 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 DimaR, c127 Например в Oracle в твoем конкретном примере, не надо так извращаться, просто Oracle поддерживает иерархические запросы в SQL. Реализацию можно? Просто интересно посмотреть. С кратким комментарием, если используются особенности реализации SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 12:42 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 13:09 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 DimaR Спасибо. Кратко и наглядно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 13:16 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Ту х: Да я не такого уж и плохого мнения о МС :) Берем QA Открываем два окна, в одном: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Во втором: Код: plaintext 1. 2. 3. Запускаем первое, пока идет ожидание 10 секунд - запускаем второе. В результате получаем - второй селект в первом окне выдаст - 0. Т.е. без явной залочки на мсскле не обойтись. Поправьте, если я не прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 14:17 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 SiDen Запускаем первое, пока идет ожидание 10 секунд - запускаем второе. В результате получаем - второй селект в первом окне выдаст - 0. Т.е. без явной залочки на мсскле не обойтись. Поправьте, если я не прав. В MS SQL это зависит от установленного уровня изоляции. При установке уровня REPEATABLE READ или SERIALIZABLE второе окно будет ждать окончания транзакции первого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 15:01 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Ок, согласен. Только REPEATABLE READ в 2000 уже тю-тю. Только SERIALIZABLE. Here is a summary of phantom protection for both SQL Server versions 6.5 and SQL Server 2000 using SET TRANSACTION ISOLATION LEVEL. Phantom protection SQL Server 6.5 SQL Server 2000 REPEATABLE READ Yes No SERIALIZABLE Yes Yes ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 15:08 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 SiDen Только REPEATABLE READ в 2000 уже тю-тю. Только SERIALIZABLE. Не понял. Куда тю-тю? Если в смысле нет его - так это неверно. Если в смысле работает не так как я сказал - это врядли, я перед ответом честно проверил именно на 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 15:23 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Работает именно так, как Вы сказали, я тож проверял :). Меня смутила выдержка из БОЛа, которую я привел выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2003, 15:41 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Paul Atreidies > Поддерживает ли сервер рекурсию (хоть какую) в операторе SELECT?. MSSQL - нет. Можно попытаться реализовать через UDF, возвращающих рекорд сет, если рекурсия в этом случае отработает. Но по-моему не отработает. Поправьте, кто в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2003, 01:48 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Что-то мы здесь все в одну кучу намешали. Предлагаю разделить обсуждения по отдельным дискуссиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2003, 12:05 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2 c127 Вопрос: Поддерживается ли операция MINUS над множествами (т.е. в запросах, по аналогии с UNION)? дб2 - есть объединение, разность и пересечение. Кстати, интересно, есть ли разница в планах если пересечение/разность строить вложенным запросом? Есть смутное подозрение что торой вариант может быть и предпочтительнее в некоторых случаях. 2 All В дб2 есть возможность связать с индексом подмножество столбцов таблицы. Т.е. для построения индекса они использоваться не будут, но при выборке по этим полям с использованием данного индекса результат будет строится только сканированием индекса. Что у других? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2003, 15:51 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
В дб2 есть возможность связать с индексом подмножество столбцов таблицы В Oracle тоже "Эtable is created as an index-organized table. In an index-organized table, the data rows are held in an index defined on the primary key for the table." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2003, 16:29 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
2DimaR Извини, не совсем понял - это определенный вид таблиц, свойство только PK, или есть такая возможность организации для любого/всех индексов? При этом все поля сохраняются с индексом или можно указать какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2003, 18:38 |
|
||
|
Сравнение различных SQL-серверов
|
|||
|---|---|---|---|
|
#18+
Это по сути таблица, но данные хранятся в сразу в древовидной структуре. Если обычный индекс не имеет смысла без таблицы (в листьевых блоках индекса прописаны указатели на строки таблицы), то здесь вместо указателей хранятся сами данные). Пример использования: небольшие справочные таблицы. В IOTs можно вывести часть столбцов в отдельный сегмент хранения. Пример: допустим в IOT три поля. ID (NUMBER), CUSTOMER_NAME (VARCHAR2(30)) и DESCRIPTION (VARCHAR2(4000). В последнем поле хранится какая-то описательная информация, к которой обращаются редко, но сама она занимает много места. Поэтому для быстроты нахождения имени пользователя по его ID в данном случае выгодно сохранить индексное дерево компактым, "убрав" вторичную информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2003, 21:13 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32142897&tid=1554365]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 311ms |

| 0 / 0 |
