powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем MS SQL Server хуже Oracle Database?
25 сообщений из 271, страница 3 из 11
Чем MS SQL Server хуже Oracle Database?
    #37715458
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargllockyпропущено...

совершенно не факт, кстати.
Современные оптимизаторы учитывают FK при построении планов запросовЯсное дело. FK же тянет за собой индекс. Индекс обслуживать надо всегда, а вот будет ли он эффективно использоваться в работе - не факт.

FK может существовать без индекса, но это скорее нонсенс.
оптимизатор учитывает не индекс, а именно FK, упрощая соединения путём выбрасывания ненужных таблиц
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715479
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinYo.!бэкапы оракла можно настраивать через гуй точно так же как и в мсскл

Т.е. вот этот вот "недостаток MS SQL"

Yo.!майкрософтские дба тыркают в кнопочки визарда не осознавая даже базовых вещей.

за "недостаток" не считаем? :)

Мало делать бекапы - нужно ещё уметь из них восстанавливать, решать возникающие по ходу проблемы, кои Oracle щедро рассыпает. Вот тут-то караул и возникает. Разумеется, любой высокооплачиваемый IT-специалист сложностям должен быть рад. Ибо чем сложнее, тем больше его значимость, меньше конкуренция и выше зарплаты.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715482
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockySiemarglпропущено...
Ясное дело. FK же тянет за собой индекс. Индекс обслуживать надо всегда, а вот будет ли он эффективно использоваться в работе - не факт.

FK может существовать без индекса, но это скорее нонсенс.
оптимизатор учитывает не индекс, а именно FK, упрощая соединения путём выбрасывания ненужных таблицИнтересно бы увидеть пример, если не реальный, то хотя бы принцип.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715484
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ден,

Спасибо за ссылку.
Особенно мне понравилось вот это:
Индекс — это упорядоченное подмножество элементов таблицы, для которой создан индекс. Применение индексов позволяет ускорить поиск и сортировку. Чем меньше размер ключа индекса , тем меньше места занимает ключ и тем выше его эффективность . Поскольку первичные ключи таблиц часто используются в других таблицах в качестве внешних ключей, рекомендуется минимизировать длину первичных ключей . Если в таблице отсутствуют столбцы небольшой длины, которые могут использоваться как первичный ключ, в качестве первичного ключа можно использовать столбец удостоверения, реализованный в виде целочисленного значения.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715524
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargllockyпропущено...

оптимизатор учитывает не индекс, а именно FK, упрощая соединения путём выбрасывания ненужных таблицИнтересно бы увидеть пример, если не реальный, то хотя бы принцип.

Дурацкий пример, но навскидку не придумывается, а вспоминать лень
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table Parent(id int primary key)
go

create table Slave(ParentId int not null references Parent(id))
go


--SET SHOWPLAN_TEXT on

select ParentId from Slave where exists(select * from Parent where id = ParentId)



план если есть FK


Код: plaintext
1.
2.
3.
4.
StmtText
-------------------------------------------------
  |--Table Scan(OBJECT:([tempdb].[dbo].[Slave]))


План если нет FK
StmtText
Код: plaintext
1.
2.
3.
4.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  |--Nested Loops(Inner Join, OUTER REFERENCES:([tempdb].[dbo].[Slave].[ParentId]))
       |--Table Scan(OBJECT:([tempdb].[dbo].[Slave]))
       |--Clustered Index Seek(OBJECT:([tempdb].[dbo].[Parent].[PK__Parent__3213E83F46535886]), SEEK:([tempdb].[dbo].[Parent].[id]=[tempdb].[dbo].[Slave].[ParentId]) ORDERED FORWARD)
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715539
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky, ОК.

Т.е. просто нет двойной работы - уже проверенное с помощью FK при вставке данных один раз, при множественных запросах потом повторной проверки не требует.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715556
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargllocky, ОК.

Т.е. просто нет двойной работы - уже проверенное с помощью FK при вставке данных один раз, при множественных запросах потом повторной проверки не требует.
Не только.
FK дает понятие о том, что может быть, а чего "не может быть в принципе", по итогу из сложных запросов выпадают (сокращаются) промежуточные (и ненужные для этого конкретного запроса) таблицы, план становится проще, выполнение - быстрее.

Особенно хорошо это видно при использовании "обобщенных view для представления полных данных".
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715594
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barkan,

Не хотел вдаваться в обсуждение, кинул можно сказать первую попавшуюся ссылку про денормализацию (остальное не читал). А JD они намеренно денормализовали данные основных таблиц, т.к если объединять в запросе, то наверно 20-30 таблиц придется, чтоб получить то что выдается в форме P4210. А вобщем, данные там нормализованы, просто вместо подстановки PK из справочника, помимо него копируются(дублируются) из него данные. ERP сочетают в себе OLTP и DW, т.е по транзакционным таблицам будут строить отчеты.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715630
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> FK дает понятие о том, что может быть, а чего "не может быть в принципе", по
> итогу из сложных запросов выпадают (сокращаются) промежуточные (и ненужные для
> этого конкретного запроса) таблицы, план становится проще, выполнение - быстрее.

Чёто ты гонишь. FK можно создать и после вставки данных, данные при этом не
будут соответствовать ограничению, реализуемому FK. Запросы при этом должны
выдавать РЕАЛЬНЫЕ данные, а не то, что могло бы быть, если бы FK существовал
в БД всегда.

Никогда в общем не слыхал, чтобы FK как-то участвовали в оптимизации запросов,
кроме конечно индексов, поддерживающих FK, если они есть.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715640
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторто наверно 20-30 таблиц придется,

Современные СУБД очень хорошо справляются со звездой. http://msdn.microsoft.com/ru-ru/library/bb522541.aspx
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715647
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ден,

Ладно, фиг с ней, с JDE и её чудесным языком.
Для программистов, которым придётся лепить "заплатки и кармашки"
к стандартной конфигурации это конкретное попадалово.
Придётся видимо новую работу искать. Ж:)
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715678
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> FK дает понятие о том, что может быть, а чего "не может быть в принципе", по
> итогу из сложных запросов выпадают (сокращаются) промежуточные (и ненужные для
> этого конкретного запроса) таблицы, план становится проще, выполнение - быстрее.

Чёто ты гонишь. FK можно создать и после вставки данных, данные при этом не
будут соответствовать ограничению, реализуемому FK. Запросы при этом должны
выдавать РЕАЛЬНЫЕ данные, а не то, что могло бы быть, если бы FK существовал
в БД всегда.

Никогда в общем не слыхал, чтобы FK как-то участвовали в оптимизации запросов,
кроме конечно индексов, поддерживающих FK, если они есть.



Ну, насчет "гонишь" - это не ко мне.
Что касается вас, дражайший, то почитайте на тему trusted foreign keys, а также не предмет опций созданий FK (check/nocheck)

Что касаемо "никогда не слышал", то вот из того о чем я никогда не слышал - можно целую библиотеку составить. Не сомневаюсь, что это справедливо и в Вашем случае.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715703
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivFK можно создать и после вставки данных,
Можно.

MasterZivданные при этом не будут соответствовать ограничению, реализуемому FK.
Да ну правда что ли? Ну попробуйте, попробуйте.

Нет, в некоторых развитых СУБД есть конструкция NOVALIDATE, предназначенная именно для такого специфического режима, "ограничить новые данные, допуская некорректные старые", но это ближе к экзотике. И хотелось бы знать, на опыте какой именно СУБД Вы выдвигаете категорическое утверждение вида "иначе и не бывает".

MasterZivНикогда в общем не слыхал, чтобы FK как-то участвовали в оптимизации запросов,
Ну можно почитать документацию. Вот , например, полезная табличка.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37715923
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> И хотелось бы знать, на опыте какой именно СУБД Вы выдвигаете категорическое
> утверждение вида "иначе и не бывает".

Да хоть MSSQL, хоть MySQL. Только где ты там видел "утверждение вида "иначе и не
бывает" ?

> Ну можно почитать документацию. Вот
> < http://docs.oracle.com/cd/B10500_01/server.920/a96520/qr.htm#50063>, например,

А, это Оракул, Великий и Ужасный ...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716009
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv > И хотелось бы знать, на опыте какой именно СУБД Вы выдвигаете категорическое
> утверждение вида "иначе и не бывает".

Да хоть MSSQL, хоть MySQL. Только где ты там видел "утверждение вида "иначе и не
бывает" ?


Матчасть изучатьне пробовали? Так, смеха ради

авторWITH CHECK | WITH NOCHECK
Specifies whether the data in the table is or is not validated against a newly added or re-enabled FOREIGN KEY or CHECK constraint. If not specified, WITH CHECK is assumed for new constraints, and WITH NOCHECK is assumed for re-enabled constraints.

If you do not want to verify new CHECK or FOREIGN KEY constraints against existing data, use WITH NOCHECK. We do not recommend doing this, except in rare cases. The new constraint will be evaluated in all later data updates. Any constraint violations that are suppressed by WITH NOCHECK when the constraint is added may cause future updates to fail if they update rows with data that does not comply with the constraint.

The query optimizer does not consider constraints that are defined WITH NOCHECK. Such constraints are ignored until they are re-enabled by using ALTER TABLE table CHECK CONSTRAINT ALL.


Первое выделение - насчет "не бывает"
Второе - насчет "никогда не слыхал, чтобы оптимизатор".
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716091
SQL Bigot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pt12ptТриггеры на уровне записи...Использование этой штуки нужно когда необходимо изменять колонку PK
Никому об этом не говори :) Использование "этой штуки" нужно, если надо что-то делать\проверять перед или после манипуляций с записью.

PS:А ещё Оракл может работать на линуксе, в отличие от.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716108
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL BigotИспользование "этой штуки" нужно, если надо что-то делать\проверять перед или после манипуляций с записью.

Для этого не нужны триггеры уровня записи.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716112
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinSQL BigotИспользование "этой штуки" нужно, если надо что-то делать\проверять перед или после манипуляций с записью.

Для этого не нужны триггеры уровня записи.
Хотя иногда чертовски удобны.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716143
SQL Bigot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinДля этого не нужны триггеры уровня записи.
Вот только не "не нужны", а "без них можно обойтись", затратив на это лишние телодвижения :)
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716150
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL BigotВот только не "не нужны", а "без них можно обойтись", затратив на это лишние телодвижения :)

Давайте рассмотрим конкретный пример?
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716168
SQL Bigot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinДавайте рассмотрим конкретный пример?
Классический(?):журнал всех(в том числе и неудачных) попыток манипуляций с записью без включения аудита.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716183
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL BigotКлассический(?):журнал всех(в том числе и неудачных) попыток манипуляций с записью без включения аудита.

Можно расшифровать термин "неудачных"?
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716186
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinSQL BigotКлассический(?):журнал всех(в том числе и неудачных) попыток манипуляций с записью без включения аудита.

Можно расшифровать термин "неудачных"?
С роллбэком
но тут, видимо, нужнее не row-level-trigger, а автономные транзакции
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716195
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyно тут, видимо, нужнее не row-level-trigger, а автономные транзакции

Угу. В легкую реализуются через CLR сборку с self-коннектом.
...
Рейтинг: 0 / 0
Чем MS SQL Server хуже Oracle Database?
    #37716197
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyС роллбэком
но тут, видимо, нужнее не row-level-trigger, а автономные транзакции
Возможно, тут имелся в виду массовый апдейт, сорвавшийся посередине, и требование сохранить информацию о действиях с первыми записями.
...
Рейтинг: 0 / 0
25 сообщений из 271, страница 3 из 11
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем MS SQL Server хуже Oracle Database?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]