powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MS SQL Express vs PostgreSQL/SQLite/FireBird
25 сообщений из 282, страница 3 из 12
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064489
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVОпять. Говорю последний раз, их в fb c успехом заменют ХП
а это ничего, если мы будем сравнивать "наши" джойны функций, с "вашими" джойнами процедур?
правда будет сложно придумать место для сложностей, но ведь не это же главное, верно ?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064501
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев ФёдорFreemanZAVОпять. Говорю последний раз, их в fb c успехом заменют ХП
а это ничего, если мы будем сравнивать "наши" джойны функций, с "вашими" джойнами процедур?
правда будет сложно придумать место для сложностей, но ведь не это же главное, верно ?
Не главное, главное мир во всём мире.
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064516
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVНе главное, главное мир во всём мире.
вот и отлично.
кстати, прямым аналогом вашего курсора является

Код: plaintext
1.
2.
declare @i int;
select @i = i from table2;

м.б. сравнить что-нибудь более осязаемое?

З.Ы.
... пользовательские агрегатные функции, к примеру )
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064529
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев Фёдорselect @i = i from table2;
Человек точно не знает, о чём говорит

Зайцев Фёдорпользовательские агрегатные функции, к примеру )
Или автономные транзакции ...
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064574
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев Фёдорпрямым аналогом вашего курсора является select @i = i from table2;
Чтобы прояснить некоторым, что такое всё-таки курсоры fb, переделаю вышеприведённый пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  EXECUTE BLOCK      returns (i INTEGER) AS
-- DECLARE VARIABLE  i INTEGER;
 DECLARE C CURSOR FOR (SELECT  i FROM table2);
 BEGIN
  OPEN C;
  WHILE ( 1  =  1 ) DO
  BEGIN
    FETCH C INTO :i;
    IF(ROW_COUNT =  0 )THEN
      LEAVE;

  END
  CLOSE C;
  SUSPEND;
END
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064597
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVЗайцев Фёдорпрямым аналогом вашего курсора является select @i = i from table2;
Чтобы прояснить некоторым, что такое всё-таки курсоры fb, переделаю вышеприведённый пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  EXECUTE BLOCK      returns (i INTEGER) AS
-- DECLARE VARIABLE  i INTEGER;
 DECLARE C CURSOR FOR (SELECT  i FROM table2);
 BEGIN
  OPEN C;
  WHILE ( 1  =  1 ) DO
  BEGIN
    FETCH C INTO :i;
    IF(ROW_COUNT =  0 )THEN
      LEAVE;

  END
  CLOSE C;
  SUSPEND;
END


вообще-то я в курсе.
кстати, сколько работает такой код для приведённого ранее примера?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064607
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
800 ms
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064608
ABC_1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Желание увидеть что-то более прикладное лично у меня не уменьшилось. Можно увидеть?

P.S. После такой переделки хотелось бы также увидеть время выполнения.
P.P.S. Версия MS SQL Server какая для сравнения приводится?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064611
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тестов использовался mssql 2005
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064627
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV
Чтобы прояснить некоторым, что такое всё-таки курсоры fb, переделаю вышеприведённый пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  EXECUTE BLOCK      returns (i INTEGER) AS
-- DECLARE VARIABLE  i INTEGER;
 DECLARE C CURSOR FOR (SELECT  i FROM table2);
 BEGIN
  OPEN C;
  WHILE ( 1  =  1 ) DO
  BEGIN
    FETCH C INTO :i;
    IF(ROW_COUNT =  0 )THEN
      LEAVE;

  END
  CLOSE C;
  SUSPEND;
END


я так понимаю, что suspend вынесен из цикла по чистой случайности. иначе будет именно
Код: plaintext
1.
2.
declare @i int;
select @i = i from table2;
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064629
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев Фёдор
кстати, сколько работает такой код для приведённого ранее примера?
Не понял сначала фразу. Для примера, приведённого ранее, я уже результаты отписал.
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064646
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев ФёдорFreemanZAV
Чтобы прояснить некоторым, что такое всё-таки курсоры fb, переделаю вышеприведённый пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  EXECUTE BLOCK      returns (i INTEGER) AS
-- DECLARE VARIABLE  i INTEGER;
 DECLARE C CURSOR FOR (SELECT  i FROM table2);
 BEGIN
  OPEN C;
  WHILE ( 1  =  1 ) DO
  BEGIN
    FETCH C INTO :i;
    IF(ROW_COUNT =  0 )THEN
      LEAVE;

  END
  CLOSE C;
  SUSPEND;
END


я так понимаю, что suspend вынесен из цикла по чистой случайности. иначе будет именно
Код: plaintext
1.
2.
declare @i int;
select @i = i from table2;
Суровый человек. И ни фига так не будет. Что select @i = i from table2 может сделать с i?
SUSPEND вынесен только чтобы не зависеть от клиента. Честно - устал я объяснять.
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064654
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV Что select @i = i from table2 может сделать с i?
SUSPEND вынесен только чтобы не зависеть от клиента. Честно - устал я объяснять.
буквально то же самое - @i получит значение i из какой-то строки table2
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064718
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVSenya_LАналогов, я так понимаю, нет
execute blockПри всем уважении... но не надо путать кислое с пресным. С ES можно сделать практически все, но от этого оно не станет похожим на конструкцию APPLY.
Зайцев Фёдортак появились табличные функции?Почти полным аналогом table valued function (TVF) в FB является селективная ХП (с блоком returns).
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064750
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LПочти полным аналогом table valued function (TVF) в FB является селективная ХП (с блоком returns).
знаю - работал и IB и FB. просто хотел подчеркнуть, что у FB нет никаких преимуществ при джойне процедур с функциями )
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064763
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев ФёдорSenya_LПочти полным аналогом table valued function (TVF) в FB является селективная ХП (с блоком returns).
знаю - работал и IB и FB. просто хотел подчеркнуть, что у FB нет никаких преимуществ при джойне процедур с функциями )а модифицировать данные внутри этой селективной ХП тоже нельзя?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064771
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев ФёдорSenya_LПочти полным аналогом table valued function (TVF) в FB является селективная ХП (с блоком returns).
знаю - работал и IB и FB. просто хотел подчеркнуть, что у FB нет никаких преимуществ при джойне процедур с функциями )У TVF и селективных ХП есть как преимущества так и недостатки супротив друг друга. Чтобы неговорить загадками: предикаты и условия слияния могут "пропагироваться" (хз как попроще сказать) внутрь TVF через тот же APPLY, но это касается только простых функций с одним селектом. Для сложной функции один фиг будет создана временная таблица. В свою очередь селективные ХП пошустрее и ограничений там поменее. Последнее особенно актуально в MSSQL2008, где в функциях запреты стали еще жестче. Так что - каждая весчь хороша в своей ситуации... :)
SergSuperЗайцев ФёдорSenya_LПочти полным аналогом table valued function (TVF) в FB является селективная ХП (с блоком returns).
знаю - работал и IB и FB. просто хотел подчеркнуть, что у FB нет никаких преимуществ при джойне процедур с функциями )а модифицировать данные внутри этой селективной ХП тоже нельзя?Можно.
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064820
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L
предикаты и условия слияния могут "пропагироваться" (хз как попроще
сказать) внутрь TVF через тот же APPLY, но это касается только простых
функций с одним селектом.

И в чём тогда смысл таких TVF или хотя бы преимущество перед View?..
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064830
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Senya_L
предикаты и условия слияния могут "пропагироваться" (хз как попроще
сказать) внутрь TVF через тот же APPLY, но это касается только простых
функций с одним селектом.

И в чём тогда смысл таких TVF или хотя бы преимущество перед View?..


как задать условие where для поля, которое не возвращается ?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064839
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев Фёдор просто хотел подчеркнуть, что у FB нет никаких преимуществ при джойне процедур с функциями )
Руки чешутся сравнить производительность, но лень...
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064844
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LПри всем уважении... но не надо путать кислое с пресным. С ES можно сделать практически все, но от этого оно не станет похожим на конструкцию APPLY.
У меня два вопроса.
1.Если один и тот же результат можно получить за одно и то же время, то в чём разница?
2.APPLY есть в стандарте?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064849
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зайцев ФёдорFreemanZAV Что select @i = i from table2 может сделать с i?
SUSPEND вынесен только чтобы не зависеть от клиента. Честно - устал я объяснять.
буквально то же самое - @i получит значение i из какой-то строки table2
Вообще пример был ориентирован не на конечный результат, а на сравнение производительности. Ну да ладно, если академические примеры трудны для восприятия, то скажу, что если вставить suspend в цикл, то ibexpert фетчит записи за 3 с небольшим секунды. Даже в этом случае MSSQL медленнее примерно в 10 раз
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064867
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV
Вообще пример был ориентирован не на конечный результат, а на сравнение производительности.
не понимаю, как можно сравнивать производительность полностью игнорируя конечный результат.
FreemanZAV Ну да ладно, если академические примеры трудны для восприятия
для восприятия трудны взятые с потолка first 1 skip...
вам, видимо, нужно ещё потренироваться в написании "академических примеров"
FreemanZAV
то скажу, что если вставить suspend в цикл, то ibexpert фетчит записи за 3 с небольшим секунды. Даже в этом случае MSSQL медленнее примерно в 10 раз
это прекрасно, но как так вышло и что из этого следует?
м.б. именно такой код пришлось оптимизировать в первую очередь, и для этого были серьёзные причины?
что именно предполагается быстро-быстро делать таким образом ?
что-нибудь такое?
Код: plaintext
1.
2.
3.
4.
update T1 set
  T1.f1 = T2.f1
from table1 T1
  join table2 T2 on T1.id = T2.id
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064919
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV1.Если один и тот же результат можно получить за одно и то же время, то в чём разница?Дело в том, что результат получим один и тот же, но время будет, скорее всего, потому как
Senya_Lпредикаты и условия слияния могут "пропагироваться" (хз как попроще сказать) внутрь TVF через тот же APPLYТо же самое относится не только к TFV, но и к подзапросам. В дополнение пример
Код: plaintext
1.
2.
3.
4.
select
  RT.*,
  SP.*
from RegularTable RT
  left join StoredProc(RT.f1, RT.f2) SP on RT.f1 = SP.f1
Выборка из StoredProc никак не будет зависеть ни от передаваемых как параметры RT.f1 и RT.f2, ни от условия слияния. Всегда ХП выдаст полный рекордсет, который только потом будет соединен с RegularTable. Тебе отлично известно, что в планах выборка из ХП всегда идет натуралом. В APPLY оптимизатором может быть использован индекс. Кстати, именно из-за этого свойства я и стал изучать этот оператор. Мог бы еще привести примеров, но лениво и, честно говоря, пока некогда. И так накатал уже :)
FreemanZAV2.APPLY есть в стандарте?Думаю, ответ ты знаешь ;), но что хочешь этим сказать? Как будто соответствие стандартам останавливало разработчиков СУБД от использования нестандартных операторов?
...
Рейтинг: 0 / 0
MS SQL Express vs PostgreSQL/SQLite/FireBird
    #36064954
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LТебе отлично известно, что в планах выборка из ХП всегда идет натуралом.
Чтож сегодня такое? Никто толком ничего не читает. Я вроде говорил в данном случае о EB.
Зайцев Фёдорэто прекрасно, но как так вышло и что из этого следует?
Вывод очевиден, курсоры в mssql в 10 медленнее чем в fb, а боле ничего.
...
Рейтинг: 0 / 0
25 сообщений из 282, страница 3 из 12
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MS SQL Express vs PostgreSQL/SQLite/FireBird
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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