powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / За что так любят MS MSQL
25 сообщений из 202, страница 4 из 9
За что так любят MS MSQL
    #35909787
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ддддддВыполнял я проект для одной известной в Москве компании, по переводу базы с MS SQL на Oracle.
Могу с уверенностью сказать, некотороые "сложные" процедуры, которые разработчики не мыслили себе без использования временных таблиц, я заменял процедурами в оракле, состоящими из одного запроса.


Уважаемый, не всегда с точки зрения эффективности все можно решить одним запросом. В частности в MS SQL довольно часто временный таблицы\табличные перменные используются, когда надо получить данные с линкованных серверов, обработать их и\или раскидать по локальным таблицам.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909803
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinддддддВыполнял я проект для одной известной в Москве компании, по переводу базы с MS SQL на Oracle.
Могу с уверенностью сказать, некотороые "сложные" процедуры, которые разработчики не мыслили себе без использования временных таблиц, я заменял процедурами в оракле, состоящими из одного запроса.


Уважаемый, не всегда с точки зрения эффективности все можно решить одним запросом. В частности в MS SQL довольно часто временный таблицы\табличные перменные используются, когда надо получить данные с линкованных серверов, обработать их и\или раскидать по локальным таблицам.

Что-то задача у Вас меняется от поста к посту.
После того, как я написал пример, как проапдейтить таблицу, не используя временную таблицу, почему-то оказалось, что ничего редактировать не надо, а надо вернуть данные клиенту.
теперь оказывается, что надо сделать запрос с линкованных серверов (хотя в синтаксис запросов отличается только добавлением ликов после имени тиблицы типа @myLink).
Вы ж определите, какую задачу невозможно решить без использования временных таблиц?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909826
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ддддддЧто-то задача у Вас меняется от поста к посту.
После того, как я написал пример, как проапдейтить таблицу, не используя временную таблицу, почему-то оказалось, что ничего редактировать не надо, а надо вернуть данные клиенту.
теперь оказывается, что надо сделать запрос с линкованных серверов (хотя в синтаксис запросов отличается только добавлением ликов после имени тиблицы типа @myLink).
Вы ж определите, какую задачу невозможно решить без использования временных таблиц?

У меня ничего не меняется. Все перечисленные мной ранее пункты остаются в силе. Но, кмк, Вы так и не поняли этих пунктов, ибо апдейчу я не физическую таблицу бд, а временную таблицу, потом делаю с временной таблицей дополнительные DML и только потом результирующим запросом возвращаю данные клиенту или распихиваются по физически таблицам бд. Сделайте мне, пожалуйста вставку данных в три таблицы и UPDATE двух других одним запросом из одного резалтсета, например.

С линкованными запросами дело далеко не столько в синтаксисе. :) Не всегда оптимизатор может правильно определить на основании запроса, использующего и линкованного и локального сервера, какой запрос надо отправить на линкованный сервер, дабы только ту получить порцию данных, которую необходимо потом связать с данными локального сервера.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909856
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklin[quot дддддд]Что-то задача у Вас меняется от поста к посту.
После того, как я написал пример, как проапдейтить таблицу, не используя временную таблицу, почему-то оказалось, что ничего редактировать не надо, а надо вернуть данные клиенту.
теперь оказывается, что надо сделать запрос с линкованных серверов (хотя в синтаксис запросов отличается только добавлением ликов после имени тиблицы типа @myLink).
Вы ж определите, какую задачу невозможно решить без использования временных таблиц?

pkarklin
У меня ничего не меняется. Все перечисленные мной ранее пункты остаются в силе. Но, кмк, Вы так и не поняли этих пунктов, ибо апдейчу я не физическую таблицу бд, а временную таблицу, потом делаю с временной таблицей дополнительные DML и только потом результирующим запросом возвращаю данные клиенту или распихиваются по физически таблицам бд. Сделайте мне, пожалуйста вставку данных в три таблицы и UPDATE двух других одним запросом из одного резалтсета, например.

Насчет временной таблицы я в курсе. Почти каждая процедура в MS SQL начинается с создания временной таблицы, редактирования в процессе работы, слива данных и удаления в конце процедуры. Такова философия MS SQL.


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

Вот этого я не понял. Я всегда считал, что запросы пишутся программистами.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909873
ддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что касается случаев, когда действительно нельзя обойтись без временной таблицы (в основном для хранения ID и еще нескольких служебных полей), создается ОДНА Temprorary таблица (не внутри процедуры, а как обычная таблица) и используется для хранения каких-то временных данных из разных процедур одновременно, т.к. Оракл четко прослеживает изоляцию транзакций и пересечение даннах от разных процедур исключено.
Ну и чистит он их сам после завершения транзакции...
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909888
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддд Почти каждая процедура в MS SQL начинается с создания временной таблицы, редактирования в процессе работы, слива данных и удаления в конце процедуры.

Вы утрируете, IMHO.

ддддддВот этого я не понял. Я всегда считал, что запросы пишутся программистами.

Что-такое распределенный запрос вызнаете, надеюсь?! В запросе вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT
  *
FROM
  localserver.database.schema.table t1
  INNER JOIN linkedserver.database.schema.table1 t2 ON
  t1.id = t2.id
WHERE
  t2.name LIKE 'SomeString%'

оптимизатору локального сервера надо принять решение какой запрос отправить на linkedserver, дабы он там выполнился и данные от него были получены. Не всегда оптимизатор запросов на основании данные, предоставляемых провайдером от удаленного сервера может это корректно сделать и может попытаться тупо потащить все данные из t2.

В качесте решения м.б. использовано заполнение временной таблицы данными только с удаленного сервера и потом их объединение с данными локального или использование вместо времянок Pass-Through Queries, которые явно будут выполняться на линкованом сервере. Какой вариант будет выигрышнее по производительности следует определять в каждом конкретном слуае.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909893
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если указать хинты?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909896
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддЧто касается случаев, когда действительно нельзя обойтись без временной таблицы (в основном для хранения ID и еще нескольких служебных полей), создается ОДНА Temprorary таблица (не внутри процедуры, а как обычная таблица) и используется для хранения каких-то временных данных из разных процедур одновременно, т.к. Оракл четко прослеживает изоляцию транзакций и пересечение даннах от разных процедур исключено.
Ну и чистит он их сам после завершения транзакции...

Закат солнца вручную, очень похожий на глобальные временные таблицы в MS SQL. Одной изоляцией транзакций (которая ничуть не хуже, а даже "лучше" "прослеживается" в MS SQL) здесь не обойдешься. Расскажите, пожалуйста, как он их "чистит сам". Например, в MS SQL локальная временная таблица видна только сесии, в которой она создана и не надо никаких заморочек с транзакциями и разделением между сессиями. Более того, локальная временная таблица, созданная в хп, автоматически удаляется при выходе из хп.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909897
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ддддддА если указать хинты?

Какие?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909915
ддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinддддддА если указать хинты?

Какие?

по индексу например
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909928
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinдддддЧто касается случаев, когда действительно нельзя обойтись без временной таблицы (в основном для хранения ID и еще нескольких служебных полей), создается ОДНА Temprorary таблица (не внутри процедуры, а как обычная таблица) и используется для хранения каких-то временных данных из разных процедур одновременно, т.к. Оракл четко прослеживает изоляцию транзакций и пересечение даннах от разных процедур исключено.
Ну и чистит он их сам после завершения транзакции...

Закат солнца вручную, очень похожий на глобальные временные таблицы в MS SQL. Одной изоляцией транзакций (которая ничуть не хуже, а даже "лучше" "прослеживается" в MS SQL) здесь не обойдешься. Расскажите, пожалуйста, как он их "чистит сам". Например, в MS SQL локальная временная таблица видна только сесии, в которой она создана и не надо никаких заморочек с транзакциями и разделением между сессиями. Более того, локальная временная таблица, созданная в хп, автоматически удаляется при выходе из хп.

Закат солнца вручную - это руками создавать временные таблицы в каждой процедуре.
Локальные переменные на то ли локальные, чтобы быть видимыми только внутри процедуры и удаляться при выходе из процедуры.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35909975
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ддддддпо индексу например

Вах, Вах, Вах... Причем тут индексы?! IMHO, Вы слабо себе представляете архитектуру распределенных запросов между двум клиент\серверными СУБД. Локальному оптимизатору запросов на основании парсинга запросов и анализа локальных метаданных и удаленных метаданных надо понять, какой на линкованный сервер надо отправлять запрос, такой:

Код: plaintext
1.
2.
3.
4.
5.
SELECT
  *
FROM
  database.schema.table1 t2
WHERE
  t2.name LIKE 'SomeString%'

и получив с него данные локально делать, например, MERGE JOIN. Или использовать NESTED LOOPS, дабы на удаленный сервер для каждой записи локального отправлять запрос вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT
  *
FROM
  database.schema.table1 t2
WHERE
  t2.name LIKE 'SomeString%' AND
  t2.ID = <SomeID>

Более того, в запросах с Four-Part Names в MS SQL нельзя использовать хинты для объектов на удаленном сервере, ибо локальный оптимизатор не может их использовать при формировании запроса к удаленному серверу. Вот в Pass-Through Queries их можно использовать. Т.е. это ситуация, когда разработчик берет часть работы оптимизатора на себя.

ддддддЗакат солнца вручную - это руками создавать временные таблицы в каждой процедуре.
Локальные переменные на то ли локальные, чтобы быть видимыми только внутри процедуры и удаляться при выходе из процедуры.

Смешались в кучу - кони, люди... ((с) Бородино) Я говорил о локальных временных таблицах, а не о переменных.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910040
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ради холивара а общего развития для :)

В MSSQL есть ряд очень удобных для DBA вещей.
1) Можно собрать, так называемым, профайлером все интересующие DBA события на сервере, собрать с помощью Perfmon,а статистику по счетчикам системы.
Затем наложить данные от Perfmon на данные профайлера в виде наглядных графиков.
2) Статистику по многим параметрам работы сервера есть в динамических представлениях и ее можно посмотреть в любой момент.
3) С помощью собранной профайлером статистики можно нагрузить новый MSSQL сервер для прогнозирования его поведения не под абстрактной а под конкретной нагрузкой.

IMHO, MSSQL пользуют много, в том числе и из за большого количества удобств в администрировании.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910073
ддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрались до администрирования...
Хотя спор был о необходимости использования временных таблиц в хранимках, потом перескочили на распреленные базы. Куда дальше понесет?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910090
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддХотя спор был о необходимости использования временных таблиц в хранимках, потом перескочили на распреленные базы. Куда дальше понесет?

Аргументы закончились, что-ли? Т.е. Вам нечего больше сказать в части использования временных таблиц при распределенных вычислениях?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910103
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддДобрались до администрирования...
Хотя спор был о необходимости использования временных таблиц в хранимках, потом перескочили на распреленные базы. Куда дальше понесет?

Это я применительно к исходному посту.

Что касается споров о применимости tmp tables то, IMHO, pkarklin в Вашем лице кормит троля :)
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910238
nApoBo3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИМХО товарищи вы сильно ушли от темы.

Мне кажется, что MS SQL любят за то, что он проще, ОСОБЕННО на начальном этапе освоения.

Мое лично мнение, что у MS SQL очень удобный и очень простой GUI для работы с базами. Хотя сам иногда юзаю TOAD, но родной GUI мне нравиться значительно больше.
Плюс BOL, это просто спасение для новичка.
Взял MS SQL, взял студию и без каких либо дополнительных телодвижении пишешь программы для работы с БД, хоть на шарпе, хоть на VB, хоть на ++.
С другими средами разработки периодически сталкивался с проблемами поиска нормального драйвера к БД. В частности с netbeans.
У MS же все готово и все работает можно сказать из коробки. Плюс родная реализация LINQ, который очень удобен.
C MS, новичок может нормально обучаться в процессе освоения, а когда он обучился, ему уже на, что-то другое, после MS GUI, слезать не хочется, да и не за чем.
Мне лично, у MS SQL не хватает только единого генератора идентификаторов на несколько таблиц.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910261
ддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinдддддХотя спор был о необходимости использования временных таблиц в хранимках, потом перескочили на распреленные базы. Куда дальше понесет?

Аргументы закончились, что-ли? Т.е. Вам нечего больше сказать в части использования временных таблиц при распределенных вычислениях?

Я уже сказал, что временные таблицы - это особенность MS SQL.
Кому-то она нравится, а кому то нет.

Например меня не устраивает в Интербейзе, что для вывода курсора из процедуры надо для каждого поля создавать выходящую переменную и явно укладывать поля запроса в эти переменные.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910377
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ддддддВыполнял я проект для одной известной в Москве компании, по переводу базы с MS SQL на Oracle.
Могу с уверенностью сказать, некотороые "сложные" процедуры, которые разработчики не мыслили себе без использования временных таблиц, я заменял процедурами в оракле, состоящими из одного запроса.
:)
Вы знаете, после того, как я после перевода вычищал из портированных с оракла БД все типично оракловые приколы - процедуры становились значительно проще, читабельнее и быстрее :)
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910379
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ддддНапример меня не устраивает в Интербейзе, что для вывода курсора из процедуры надо для каждого поля создавать выходящую переменную и явно укладывать поля запроса в эти переменные.
в IB/FB нет "вывода курсора из процедуры". есть "селективные" процедуры, которые могут прикидываться "таблицами". А что из них "выводится" - по барабану. Реальные данные из таблиц, view, сложные вычисления, факториал - без разницы.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910448
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nApoBo3ИМХО товарищи вы сильно ушли от темы.

Мне кажется, что MS SQL любят за то, что он проще, ОСОБЕННО на начальном этапе освоения.

Мое лично мнение, что у MS SQL очень удобный и очень простой GUI для работы с базами. Хотя сам иногда юзаю TOAD, но родной GUI мне нравиться значительно больше.
Плюс BOL, это просто спасение для новичка.
Взял MS SQL, взял студию и без каких либо дополнительных телодвижении пишешь программы для работы с БД, хоть на шарпе, хоть на VB, хоть на ++.
С другими средами разработки периодически сталкивался с проблемами поиска нормального драйвера к БД. В частности с netbeans.
У MS же все готово и все работает можно сказать из коробки. Плюс родная реализация LINQ, который очень удобен.
C MS, новичок может нормально обучаться в процессе освоения, а когда он обучился, ему уже на, что-то другое, после MS GUI, слезать не хочется, да и не за чем.
Мне лично, у MS SQL не хватает только единого генератора идентификаторов на несколько таблиц.

Все правильно! Однако тут еще важно как продукция продвигается на рынок компанией производителем.
В свете этого интересно порассуждать о Sybase ASE и MsSql как пример развития одного продукта в разных компаниях с совершенно разным подходом к развитию продукта и политике его продаж.
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910593
ддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lockyддддддВыполнял я проект для одной известной в Москве компании, по переводу базы с MS SQL на Oracle.
Могу с уверенностью сказать, некотороые "сложные" процедуры, которые разработчики не мыслили себе без использования временных таблиц, я заменял процедурами в оракле, состоящими из одного запроса.
:)
Вы знаете, после того, как я после перевода вычищал из портированных с оракла БД все типично оракловые приколы - процедуры становились значительно проще, читабельнее и быстрее :)

Про приколы поподробнее можно?

Интересно, символ "@" перед каждой переменной, в MS SQL ставится для чего?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910688
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддИнтересно, символ "@" перед каждой переменной, в MS SQL ставится для чего?

Да вот для того, чтобы избежать этого: Покритикуйте Оракл 10г
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910708
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддИнтересно, символ "@" перед каждой переменной, в MS SQL ставится для чего?
чтобы отличать переменную от имени поля
на самом деле очень удобно - когда большой запрос сразу бросается в глаза

встречный вопрос - таблица DUAL для чего нужна?
...
Рейтинг: 0 / 0
За что так любят MS MSQL
    #35910738
rilio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperвстречный вопрос - таблица DUAL для чего нужна?
Видимо, потому что SELECT без FROM опять же не соответствует стандарту...
http://www.netaktive.org/Norme-SQL3-ANSI-BNF.html
...
Рейтинг: 0 / 0
25 сообщений из 202, страница 4 из 9
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / За что так любят MS MSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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