Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8   вперед  Ctrl      все
 Re: О временных таблицах замолвите слово...  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Не менее убедительно, чем gardenman
Так бы и давно

-- Tygra's --
27 дек 04, 14:55    [1212078]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
hvlad
Guest
tygra
автор
2) Рекурсивных запросов -нет
Уже показали, что и без них нет проблем
автор
3) триггеров before/for each row нет
Без них неплохо.
автор
4) SQUENCE - нет
А зачем?
автор
5) timestamp - вообще непонятно что
Ну кому что и как :)
автор
6) тип данных DATE - отсутствует как класс (и TIME тоже)
Ну есть datetime, ничего,хватает
автор
7) структурные типы - отсутствуют...
А зачем?
автор
8) а где многоплатформенность?
А не нужна
автор
9) а как на счет масштабируемости и кластеров?
Вот это единственное, чего жаль что нет
автор
а сравним PL/SQL с T-SQL?
а попробуйте написать на ESQL/C++ ХП, так как это можно делать в DB2?
Ничего, работаем
автор
И вы хотите сравнивать это все с Оracle или DB2 ?...

Мы не хотим, мы уже. И работаем однако. И хорошо работаем. И не выдумываем различных причин. И все неплохо получается. И насильно никому не навязываем - аллергию на MS пока не лечат
Скипнуть нечего - рука не понимается, очень напоминает ответы людей, работающих с IB\FB, всем остальным ;)
Разве что про аллергию нет - это специфика MS
27 дек 04, 15:05    [1212120]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
tygra
автор
3) триггеров before/for each row нет

Без них неплохо.

Хм. Тут в соседнем форуме ACSRUS высказался в том духе, что тривиальные манипуляции - типа "держать данные в поле заглавными буквами" - без них нормально не делаются. Прокомментируете?

tygra
автор
4) SQUENCE - нет

А зачем?

Удобно. Собственно, MS уже ответил на вопрос "зачем", внедряя GUID.

tygra
автор
7) структурные типы - отсутствуют...

А зачем?

Удобно. По тем же причинам, по которым они удобны, например, в ЯВУ.

tygra
автор
8) а где многоплатформенность?

А не нужна

Сложный вопрос. С точки зрения маркетинга это минус - достаточно много народу скажет "у нас уже есть платформа X, вот и будем покупать то, что с ней работает". Хотя понятно, что многоплатформенность в MSSQL если и будет, то на уровне "WinNT либо .NET".
27 дек 04, 15:06    [1212122]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
автор
В Юконе как раз можно будет так писать, как в конце той страницы. Получается, что уже можно сравнивать - бета есть :)

Сам Юкон не видел, но на вскидку там будут:
CTE, Recursive, Date, Time, C# ... есть ли что еще из списка фич других СУБД ?

Насколько помню:
не будет триггеров BEFORE и EACH ROW, если что поправьте.

Возникает еще вопрос многостродальной теме C# в MSSQL - он там будет только как язык ХП использоваться или же на C# можно делать классы, которые обьявлять как домены и хранить их экземпляры в таблицах ? Типа как в ASA (берем кусок BOL):
install java new from file 'Invoice.class';
go

CREATE VARIABLE Inv Invoice
go
SET Inv = NEW Invoice()
go

-- Set values of the Invoice members
SET Inv.lineItem1Description = 'Work boots'
go
SET Inv.lineItem1Cost = '79.99'
go
SET Inv.lineItem2Description = 'Hay fork'
go
SET Inv.lineItem2Cost = '37.49'
go

-- Retrieve values of the Invoice members
SELECT Inv.lineItem1Description;
output to 'report.txt'
go

CREATE TABLE T1 (
    ID int,
    JCol Invoice
)
go

INSERT INTO T1
VALUES( 1, Inv )
go

SELECT ID, JCol.lineItem1Description
FROM T1;
output to 'report.txt'
append
go

INSERT INTO T1
VALUES ( 2, NEW Invoice() )
go

SELECT ID, JCol.totalSum()
FROM t1;
output to 'report.txt'
append
go

CREATE VARIABLE Inv2 Invoice
go
SET Inv2 = (select JCol from T1 where ID = 2)
go
SET Inv2.lineItem1Description = 'Sweet feed'
go
SET Inv2.lineItem2Description = 'Drive belt'
go
здесь хотя бы видна польза Java - можно хранить в таблицах обьекты и работать с ними напрямую с запросов. Несмотря на это, постоянное развитие WatcomSQL вытеснило Java и она обьявлена в ASA как "не рекомендуемая опция", т.е. не факт что в следующей верстии поддержку работы с Java из WatcomSQL не снесут, оставив только внешние ХП на Java.
27 дек 04, 15:08    [1212133]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Фишка вот в чем. Все перечисленные мной опции есть в других базах уже несколько лет. К тому времени, когда у других появится еще что-то, MS реализует те, которых у нее нет сейчас. Таким образом получается что MSSQL - ситематически оказывается в роли аутсайдера в области разработки БД.
27 дек 04, 15:12    [1212153]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
DimaR
Member

Откуда:
Сообщений: 1570
to ASCRUS
Если не читал еще, вот ссылочка

http://www.rsdn.ru/article/db/yukondotnet.xml
27 дек 04, 15:17    [1212177]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Хм. Тут в соседнем форуме ACSRUS высказался в том духе, что тривиальные манипуляции - типа "держать данные в поле заглавными буквами" - без них нормально не делаются. Прокомментируете?

Дык есть другие триггеры. After insert, например. А по триггеру for each row я тоже горевал, когда давно еще с IB пришел. А ничего теперь, как-то привык да и нет больше нужды. :)

автор
Удобно. Собственно, MS уже ответил на вопрос "зачем", внедряя GUID.

Это как GUID может быть ответом на SQUENCE? Что-то не пойму. Выше кстати было сказано, что отличается SQUENCE от Identity на 95%. А Гуид вообще из другой песни.

автор
Удобно. По тем же причинам, по которым они удобны, например, в ЯВУ.

Зато хуже разбираться с системой.

автор
Сложный вопрос. С точки зрения маркетинга это минус - достаточно много народу скажет "у нас уже есть платформа X, вот и будем покупать то, что с ней работает". Хотя понятно, что многоплатформенность в MSSQL если и будет, то на уровне "WinNT либо .NET".

Ну хозяин барин. Кто чего хочет, тот то и покупает. По мне так правильно, что нет кроссплатформенности. Продукты от одного производителя. Зачем лезть куда-то еще, если ты наоборот продвигаешь свою ОС? Это нехорошо как-то получилось бы :))

-- Tygra's --
27 дек 04, 15:17    [1212180]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Фишка вот в чем. Все перечисленные мной опции есть в других базах уже несколько лет. К тому времени, когда у других появится еще что-то, MS реализует те, которых у нее нет сейчас. Таким образом получается что MSSQL - ситематически оказывается в роли аутсайдера в области разработки БД.

Ну если вы определяете возможности СУБД по вашему списку опций, то для вас вывод правильный. Однако многие другие работают с MS SQL и чувствуют себя нормально, а некоторые даже и хорошо. Впрочем не лучше и не хуже, чем остальные. Если же вы что-то не можете сделать руками - только опции подавай - то тогда да, оставайтесь на Оракле. Если вы на нем, конечно.

А для остальных аутсайдер весьма неплохо работает.

-- Tygra's --
27 дек 04, 15:22    [1212201]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
Alex.Czech
Guest
ASCRUS
автор
В Юконе как раз можно будет так писать, как в конце той страницы. Получается, что уже можно сравнивать - бета есть :)

Сам Юкон не видел, но на вскидку там будут:
CTE, Recursive, Date, Time, C# ... есть ли что еще из списка фич других СУБД ?


Ага. Я просто заленился все это писать :)


Возникает еще вопрос многостродальной теме C# в MSSQL - он там будет только как язык ХП использоваться или же на C# можно делать классы, которые обьявлять как домены и хранить их экземпляры в таблицах ?


Второе
27 дек 04, 15:24    [1212210]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
segun
Member

Откуда: Москва
Сообщений: 504
ASCRUS
автор
В Юконе как раз можно будет так писать, как в конце той страницы. Получается, что уже можно сравнивать - бета есть :)

Сам Юкон не видел, но на вскидку там будут:
CTE, Recursive, Date, Time, C# ... есть ли что еще из списка фич других СУБД?
да, все это это будет. Одна из самых интересных, на мой взгляд, возможностей это версионность на уровне строк.
ASCRUS
Насколько помню:
не будет триггеров BEFORE и EACH ROW, если что поправьте.
вы абсолютно правы, этого пока не будет.
ASCRUS
Возникает еще вопрос многостродальной теме C# в MSSQL - он там будет только как язык ХП использоваться или же на C# можно делать классы, которые обьявлять как домены и хранить их экземпляры в таблицах ?
С помощью .Net языков можно будет создавать SP, UDF, UDT, триггеры и пользовательские агрегаты. Посмотрите ссылку на презентацию, там вся реализация описана по шагам.
gardenman
Фишка вот в чем. Все перечисленные мной опции есть в других базах уже несколько лет. К тому времени, когда у других появится еще что-то, MS реализует те, которых у нее нет сейчас. Таким образом получается что MSSQL - ситематически оказывается в роли аутсайдера в области разработки БД.
MS идет своим путем, попутно беря все лучшее что есть у остальных СУБД на сегодняшний день. Посмотрите хотя бы на список компонент, которые будут представлять собой MS SQL 2005.
27 дек 04, 15:24    [1212213]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
Yo!
Guest
>MS идет своим путем, попутно беря все лучшее что есть у остальных СУБД на сегодняшний день. Посмотрите хотя бы на список компонент, которые будут представлять собой MS SQL 2005.

боюсь мы уже тут смотрели этот список и не нашли ничего чего бы небыло в oracle8i, а на дворе 2005 год ...
27 дек 04, 15:28    [1212230]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
segun
Member

Откуда: Москва
Сообщений: 504
ну значит не туда смотрели. Возьмите хотя бы интеграцию с .Net Framework и как она оценивается даже теми людьми, документ которых вы приводили как весомое доказательство превосходства Oracle над MS SQL.
27 дек 04, 15:37    [1212259]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
Yo!
Guest
вы хотите сказать что попытка МС создать свою джаву удалась МС лучше чем оригиналу ? согласитесь спорно ... ;)
еще есть преимущества переде 8i ?
27 дек 04, 15:47    [1212304]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
tygra
Дык есть другие триггеры. After insert, например. А по триггеру for each row я тоже горевал, когда давно еще с IB пришел. А ничего теперь, как-то привык да и нет больше нужды. :)

after-то есть - но ценой удвоения работы сервера. Плюс неочевидный момент рекурсии при таком обновлении.

tygra
автор
Удобно. Собственно, MS уже ответил на вопрос "зачем", внедряя GUID.

Это как GUID может быть ответом на SQUENCE? Что-то не пойму. Выше кстати было сказано, что отличается SQUENCE от Identity на 95%. А Гуид вообще из другой песни.

Хм. Sequence отличается от Identity очень простым образом - уж простите, не понял, что есть "выше". Sequence - это объект, с которым как хочешь, так и работаешь. А identity - это нечто вроде атрибута поля и "ни шага влево, ни шага вправо". По крайней мере, если опять же ничего не изменилось по сравнению с версиями, о которых мне рассказывали.

Guid же, насколько я понимаю, является "ответом на sequence" потому что позволяет MSSQL нормально реплицироваться - чего (насколько я в курсе) не умеет identity.

tygra
автор
Удобно. По тем же причинам, по которым они удобны, например, в ЯВУ.

Зато хуже разбираться с системой.

Не понял смысла этой фразы.

Хм. Допустим, в бейсике не было почти ничего - и поэтому для описания объекта с тремя атрибутами приходилось завести переменные A, B$ и B1$ (имена тоже допускались - буква или буква-цифра). Потом стало возможно таки писать record, struct или аналогичные конструкции. Стало хуже разбираться с системой?

Не понял. Поясните, пожалуйста, может быть на примере - что Вы имеете в виду.
27 дек 04, 15:49    [1212315]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
segun
Member

Откуда: Москва
Сообщений: 504
2 Yo!:
хм.. как-то вы с темы на тему перескакиваете. По поводу того документа и оценки в нем интеграции .Net и MS SQL вы согласны или нет? Если да, то вопрос решен, если нет, это означает что вы не со всем в нем согласны, тогда зачем вы его вообще советовали смотреть?
27 дек 04, 15:58    [1212362]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Хм. Sequence отличается от Identity очень простым образом - уж простите, не понял, что есть "выше". Sequence - это объект, с которым как хочешь, так и работаешь. А identity - это нечто вроде атрибута поля и "ни шага влево, ни шага вправо". По крайней мере, если опять же ничего не изменилось по сравнению с версиями, о которых мне рассказывали.

Guid же, насколько я понимаю, является "ответом на sequence" потому что позволяет MSSQL нормально реплицироваться - чего (насколько я в курсе) не умеет identity.

Ну секвенс то аналог identity вообще-то. А гуид - это просто другой тип данных. Какая связь?
Ну а репликация - а как тут секвенс связан с ней?

-- Tygra's --
27 дек 04, 16:01    [1212381]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
tygra
автор
Хм. Sequence отличается от Identity очень простым образом - уж простите, не понял, что есть "выше". Sequence - это объект, с которым как хочешь, так и работаешь. А identity - это нечто вроде атрибута поля и "ни шага влево, ни шага вправо". По крайней мере, если опять же ничего не изменилось по сравнению с версиями, о которых мне рассказывали.

Guid же, насколько я понимаю, является "ответом на sequence" потому что позволяет MSSQL нормально реплицироваться - чего (насколько я в курсе) не умеет identity.

Ну секвенс то аналог identity вообще-то. А гуид - это просто другой тип данных. Какая связь?
Ну а репликация - а как тут секвенс связан с ней?

-- Tygra's --

Гм, возможно аналогу секвенса в ASA служит Global Autoincrement - который ведется непрерывно для всей БД, но в пределах, заданных в опции "Database ID". В итоге все работают каждый в пределах своего промежутка значений, в консолидированной БД не возникает конфликтов PK, однако в самой консолидированной БД счетчик под ее DataBase id не сбивается при подливе данных с других СУБД и все вставляемые записи опять же работают в собственном промежутке, таким образом избегая обратных конфликтов. Все это работает автоматом, единственное где могут быть траблы при репликации - это при сбивании кода БД или же ввода одинаковых, однако это уже на совести проектировщика. Конечно самое надежное конечно это GUID - тут вообще никаких конфликтов быть просто не может, хотя если сравнивать bigint и GUID - немного разные размеры типов данных получаются.
27 дек 04, 16:13    [1212433]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
Yo!
Guest
автор
хм.. как-то вы с темы на тему перескакиваете. По поводу того документа и оценки в нем интеграции .Net и MS SQL вы согласны или нет? Если да, то вопрос решен, если нет, это означает что вы не со всем в нем согласны, тогда зачем вы его вообще советовали смотреть?


советовал смотреть чтоб вы вообще представляли в чем есть отличия, этот документ наиболее полно их перечисляет, а со мнением естественно я согласен не со всем.
например про .net и java я не согласен - мне все равно через врапер или нет запускается моя java, главное чтоб потери в скорости небыло. когда появятся тесты тогда и можно поговорить о преимуществах прямого запуска, а так это просто слова (если не углублятся в сами языки и их конструкции).
27 дек 04, 16:27    [1212508]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
dimitr
Member

Откуда: PNZ
Сообщений: 7000
tygra
Ну секвенс то аналог identity вообще-то.


identity - это частный случай применения sequence. В общем случае, использование монотонных последовательностей не ограничивается unique-столбцами.
27 дек 04, 16:27    [1212509]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
tygra
Ну секвенс то аналог identity вообще-то.

А можно поподробнее? Насколько я видел, identity - это атрибут поля, а секвенсор - это объект. То есть если мне нужно обеспечить сквозную нумерацию по нескольким таблицам, секвенсор легко решает эту задачу, а с identity придется извращаться (делать отдельную таблицу, на которую ссылаться?!).

tygra
А гуид - это просто другой тип данных. Какая связь?
Ну а репликация - а как тут секвенс связан с ней?

Хм. Связь следующая: насколько я понимаю, в MSSQL поставить default SYS_GUID (или нечто аналогичное - миль пардон за синтаксис) - это наиболее простой путь обеспечить нормальную репликацию. Другой путь - здесь, на sql.ru, лежит статья https://www.sql.ru/articles/mssql/03100902ArchitectingReplicationWithIdentityColumns.shtml, из которой получается, что MSSQL2000 таки дает какую-то особую опцию для управления диапазонами, в результате чего можно построить репликацию на основе identity и довольно кривой схемы распределения номеров.

Осталось сравнить это с

create sequence X start with <server number> increment by 1000
.

И - никаких вопросов. Собственно, меня несколько удивляет, почему в MSSQL нельзя сделать такого же - но, полагаю, у автора статьи, размещенной на столь компетентном сервере, были какие-то причины :)

Ну и так все-таки - насчет "хуже разбираться" поясните? А то как-то странно получается - уже второй раз в этой теме я говорю что-то, а Вы замолкаете.
27 дек 04, 16:34    [1212541]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
Alex.Czech
Guest
Start value и seed value у IDENTITY безусловно настраиваются... так что имхо для репликации никаких проблем я не вижу. Вот когда нужно одно ID на несколько таблиц сразу автоинкрементить - это и есть те самые 5% (о которых я говорил в другом топике), где identity проигрывает
27 дек 04, 16:37    [1212555]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
Alex.Czech
Guest
А вообще прискорбно, что все это вылилось в очередную религиозную войну. "Нет, не об этом он мечтал всю свою сознательную жизнь"
27 дек 04, 16:40    [1212570]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
Блин... чтобы узнать Identity-значение нужно обядательно вставить строку в таблицу. (сделать транзакцию) Последнее значение возвратится в @@identity. Чтобы получить значение из последовательности - нужно сделать запрос, который находится все транзакции. Разница - ОГРОМНА!
27 дек 04, 16:45    [1212595]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67469
Блог
Alex.Czech
Start value и seed value у IDENTITY безусловно настраиваются... так что имхо для репликации никаких проблем я не вижу.

Я - со своей ламерской колокольни - тоже не вижу и удивляюсь. Но предположительно солидный автор на уважаемом сервере зачем-то предлагает куда более сложную и неудобную схему. Вы готовы поручиться своей репутацией, что это только из-за того, что он нерюх и идиот? Напишите Джуджу, что эту статью стоит выбросить и не позориться?
27 дек 04, 16:48    [1212605]     Ответить | Цитировать Сообщить модератору
 Re: О временных таблицах замолвите слово...  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Alex.Czech
Start value и seed value у IDENTITY безусловно настраиваются... так что имхо для репликации никаких проблем я не вижу. Вот когда нужно одно ID на несколько таблиц сразу автоинкрементить - это и есть те самые 5% (о которых я говорил в другом топике), где identity проигрывает

Ради интереса - настраиваться то понятно настраивается. А вот не сбивается ли, если с других БД приходят записи с заведомо более высоким диапазоном номеров ? То есть работает у нас Identity в пределах 1-100 и равен 2, приходит с другой БД запись 101. Какой следующий номер будет присвоен при вставке новой записи в этой таблице ? По идее он должен равняться 3-ем.

автор
А вообще прискорбно, что все это вылилось в очередную религиозную войну. "Нет, не об этом он мечтал всю свою сознательную жизнь"

Да нет - даже ссылочки интересные по Юкону привели, с удовольствием почитал, как там и чего будет выглядеть в целях самообразования. Есть правда один неутешительный вывод - формула "ПО от MS = Геммор" к сожалению продолжает успешно работать и они где нибудь, да обязательно сделают пару недоработок/ошибок, которые потом придется дружно обходить.

автор
Блин... чтобы узнать Identity-значение нужно обядательно вставить строку в таблицу. (сделать транзакцию) Последнее значение возвратится в @@identity. Чтобы получить значение из последовательности - нужно сделать запрос, который находится все транзакции. Разница - ОГРОМНА!

Давненько Вы с MSSQL не работали :) Уже давно есть куча функций, которая позволяет вне транзакции без вставки записи узнавать для указанных таблиц текущий и следующий Increment.
27 дек 04, 16:48    [1212607]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить