powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / DB2 Express-C против - MS SQL Server 2000 -???
25 сообщений из 178, страница 2 из 8
DB2 Express-C против - MS SQL Server 2000 -???
    #33590483
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не искать утечки памяти - нужно писать ХП правильно.
А когда XP или FUNCTION поднимает перфоменс запроса на два порядка - это ооочень тешит мое самолюбие...)))
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590494
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanЧтобы не искать утечки памяти - нужно писать ХП правильно.
А когда XP или FUNCTION поднимает перфоменс запроса на два порядка - это ооочень тешит мое самолюбие...)))
Странно - если в ХП у меня используется только бизнес-логика в виде запросов и ветвлений через IF, если у сервера есть все необходимые штатные быстрющие функции работы с математикой, строками, датами, аналитикой и т.д., а всякие затратные, но не имеющие отношения к БД функции, типа "суммы прописью", перевода Gif в JPeg, распознавания текстов и т.д., хорошо и быстро работают на клиенте и отчетнике, то спрашивается - ну где там можно перфоменс на два порядка поднять, что нужно делать, чтобы такое различие скорости было заметно ? У меня честно говоря окромя сравнения, что на Си обрабатывать данные курсорчиками будет в 2 раза быстрее, чем в ХП, других мыслей в голову и не приходит. Так что колитесь ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590505
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590507
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
типа все заб[ы|и]ли на топик, и понеслась.....
Интересно, это свойство человеческой натуры вообще, или это мы, ITшники грешим только...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590510
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ggv
Ага... все мы грешники... каюсь...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590532
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
есть предложение...
Братьям по верем. По вере в IT.
Забить на все эти топики, с дурацкими вопросами этих, как их....
Пользователей, блин.
Тольку от них. Что от пользователей, что от вопросов их дурацких....
И собственно, занятся любимым делом!
Обсуждением нашей веры!
Лучше всего очно, в пивняке :)
Все одно этим заканчивается любой топик.
Ну в пивняке врядли получится, в смысле - в реальном. Мы, так сказать, "распределенное" сообщество.
То есть предлагаю наше распределенное сообщество интегрировать в виртуальном пивняке.
Где мы и займемся любимым делом :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590562
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvГде мы и займемся любимым делом :)Каким? :)
Расхваливать сервера и технологии, на которых работаем?
Ссориться и сраться за веру в великое будущее MS, IBM или Оракла?

Так мы и так этим занимаемся. Зачем нам виртуальный пивняк? :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590633
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
а вот как раз затем, чтобы заниматься любимым делом безотносительно ваших вопросов.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590734
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvа вот как раз затем, чтобы заниматься любимым делом безотносительно ваших вопросов.Не понял, чьих "ваших вопросов"?

При всем уважении, не получится.
Все равно собъемся на спор каждый за свою веру.

Поэтому "виртуальный кабак" придется разбивать на столик для DB2-шников, столик для MSSQL-евцев и т.д.
Так у нас и так форум разбит на "столики".
А драки, как положено, в курилке "Сравнение СУБД" :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590789
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
неее, суть в том, чтобы не ждать очередного топика для драки, а иметь ее перманентно, не обращая внимания собвтвенно на вопросы страждущих :)
Ну вот взять этот топик - ну и сколько сообщений по теме?
Воо, так нафига ждать прихода темы?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590966
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591101
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.

В огороде бузина, а в Киеве дядька.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591104
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да здравствует сухой закон!
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591109
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло

За наличие C - компилятора на продакш машине надо ставить к стенке.

непонял, это вы так с хакерами боретесь :) ? и шо помогает ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591127
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa Выбегалло ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.

В огороде бузина, а в Киеве дядька.

JFYI : возможность создавать хранимые процедуры БЕЗ компилятора С в DB2 появилась, по-моему, с версии 8.2. До этого использование SP автоматически влекло установку компилятора. В том числе и на продакшн. Теперь понятней ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591143
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Выбегалло

За наличие C - компилятора на продакш машине надо ставить к стенке.

непонял, это вы так с хакерами боретесь :) ? и шо помогает ?

Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591149
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоНет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591151
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov ВыбегаллоНет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!

Выаод неправильный - переходить надо на Informix :-)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591158
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло Victor Metelitsa Выбегалло ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.

В огороде бузина, а в Киеве дядька.

JFYI : возможность создавать хранимые процедуры БЕЗ компилятора С в DB2 появилась, по-моему, с версии 8.2. До этого использование SP автоматически влекло установку компилятора. В том числе и на продакшн. Теперь понятней ?
А в Америке негров линчуют.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591159
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov ВыбегаллоНет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!
А в Киеве дядька.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591161
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло

Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.

Cool ! компилировать трояна в C сторед процедуру, это что какой-то вид аудита ? :) не слышал о такой фичи у оракла :)

ЗЫ. видел люди ставили иконки на сервер, но чтоб компилятор выковыривать, это впервые. послушайте расскажите нам серым, а perl, bash, java вы тоже выковыриваете ? особо интересует методика выковыривания C компилятора из db2 8.2 ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591195
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы пользуетесь покупной системой на Oracle, которая построена с использованием wrapped процедур, плюс клиентская часть на чём-то (Delphi/Java/etc), где гарантия, что там нет трояна? Проверить вы не сможете. (А будут исходники, действительно ли станете проверять, или доверитесь поставщику?). C-процедуры и функции DB2 нисколько не более опасны.

1) Классические C-процедуры и

2) процедуры на SQL PL, которые ранее транслировались на C, а, начиная с DB2 8.2, в собственный DB2-байткод,

это всё-таки разные вещи. Но в обоих случаях, C-компилятор на production никогда не требовался и не требуется; если использовался C, то поставляются скомпилированные модули (DLL, shared libraries).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591218
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам SP на SQL PL (язык появился в DB2 v7 и усовершенствовался в v8).
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
CREATE PROCEDURE IN_PARAMS (IN lowsal DOUBLE, IN medsal DOUBLE, IN highsal DOUBLE, IN department CHAR( 3 ))
SPECIFIC SQL_IN_PARAMS
DYNAMIC RESULT SETS  0 
DETERMINISTIC
LANGUAGE SQL 
MODIFIES SQL DATA
BEGIN
  DECLARE SQLSTATE CHAR( 5 ) DEFAULT '00000';
  DECLARE SQLCODE INTEGER DEFAULT  0 ;
  DECLARE errorLabel CHAR( 32 ) DEFAULT '';
  DECLARE v_firstnme VARCHAR( 12 );
  DECLARE v_midinit CHAR( 1 );
  DECLARE v_lastname VARCHAR( 15 );
  DECLARE v_salary DOUBLE;
  DECLARE at_end SMALLINT DEFAULT  0 ;
 
  DECLARE c1 CURSOR FOR
    SELECT firstnme, midinit, lastname, CAST(salary AS DOUBLE)
    FROM employee
    WHERE workdept = department 
    FOR UPDATE OF salary;

  DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET at_end =  1 ;

  DECLARE EXIT HANDLER FOR SQLEXCEPTION
    SIGNAL SQLSTATE value SQLSTATE SET MESSAGE_TEXT = errorLabel;

  -- initialize OUT parameter
  SET errorLabel = 'OPEN CURSOR';
  OPEN c1;
  SET errorLabel = 'FIRST FETCH';
  FETCH c1 INTO v_firstnme, v_midinit, v_lastname, v_salary;
  WHILE (at_end =  0 ) DO
    IF (lowsal > v_salary) THEN
      UPDATE employee
      SET salary = lowsal
      WHERE CURRENT OF c1;
    ELSEIF (medsal > v_salary) THEN
      UPDATE employee
      SET salary = medsal
      WHERE CURRENT OF c1;
    ELSEIF (highsal > v_salary) THEN
      UPDATE employee
      SET salary = highsal
      WHERE CURRENT OF c1;
    ELSE UPDATE employee
      SET salary = salary *  1 . 10 
      WHERE CURRENT OF c1;
    END IF;
    SET errorLabel = 'FETCH IN WHILE LOOP';
    FETCH c1 INTO v_firstnme, v_midinit, v_lastname, v_salary;
  END WHILE;
  SET errorLabel = 'CLOSE CURSOR';
  CLOSE c1;
END @
А вот аналог на C, с DB2 v2 (комментарии я выкинул).
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
SQL_API_RC SQL_API_FN InParams(double *inLowSal,
                               double *inMedSal,
                               double *inHighSal,
                               char inDept[ 4 ],  /* CHAR(3) */
                               sqlint16 *inLowSalNullInd,
                               sqlint16 *inMedSalNullInd,
                               sqlint16 *inHighSalNullInd,
                               sqlint16 *inDeptNullInd,
                               char sqlstate[ 6 ],      
                               char qualName[ 28 ],  
                               char specName[ 19 ],  
                               char diagMsg[ 71 ]) 
{
  EXEC SQL INCLUDE SQLCA;  
  EXEC SQL BEGIN DECLARE SECTION;
    double hvInParamLowSal;
    double hvInParamMedSal;
    double hvInParamHighSal;
    double hvInParamSalary;
    char hvInParamDept[ 4 ];
  EXEC SQL END DECLARE SECTION;
  char sqlStmtInfo[ 60 ];
  memset(sqlStmtInfo, '\0',  60 ); 
  EXEC SQL WHENEVER SQLERROR GOTO return_error;
  if ((*inLowSalNullInd) <  0  || 
      (*inMedSalNullInd) <  0  ||  
      (*inHighSalNullInd) <  0  ||
      (*inDeptNullInd) <  0 )
  {
    strcpy(sqlstate, "38100");
    strcpy(diagMsg, "Received null input.");   
    return( 0 );
  } 
  hvInParamLowSal = *inLowSal;
  hvInParamMedSal = *inMedSal;
  hvInParamHighSal = *inHighSal;
  strcpy(hvInParamDept, inDept);
  strcpy(sqlStmtInfo, "DECLARE statement failed");    
  EXEC SQL DECLARE curInParam CURSOR FOR
             SELECT CAST(salary AS DOUBLE)
               FROM employee
                 WHERE workdept = :hvInParamDept FOR UPDATE;  
  strcpy(sqlStmtInfo, "OPEN statement failed");  
  EXEC SQL OPEN curInParam;
  strcpy(sqlStmtInfo, "FETCH statement failed");   
  EXEC SQL FETCH curInParam INTO :hvInParamSalary;
  if (sqlca.sqlcode ==  100 )
  {
    strcpy(sqlstate, "38200");  
    strcpy(diagMsg, " 100: NO DATA FOUND");
    strcpy(sqlStmtInfo, "CLOSE statement failed");
    EXEC SQL CLOSE curInParam;
    return ( 0 );
  }      
  while (sqlca.sqlcode ==  0 )
  {
    strcpy(sqlStmtInfo, "UPDATE statement failed");   
    if (hvInParamLowSal > hvInParamSalary)
    {
      EXEC SQL UPDATE employee SET salary = :hvInParamLowSal
	         WHERE CURRENT OF curInParam;
    }
    else if (hvInParamMedSal > hvInParamSalary)
    {
      EXEC SQL UPDATE employee SET salary = :hvInParamMedSal 
	         WHERE CURRENT OF curInParam;
    }
    else if (hvInParamHighSal > hvInParamSalary)
    {
      EXEC SQL UPDATE employee SET salary = :hvInParamHighSal 
	         WHERE CURRENT OF curInParam;
    }
    else
    {
      EXEC SQL UPDATE employee
                 SET salary = :hvInParamSalary *  1 . 10 
                   WHERE CURRENT OF curInParam;
    }   
    strcpy(sqlStmtInfo, "FETCH statement failed");   
    EXEC SQL FETCH curInParam INTO: hvInParamSalary;
  }
  strcpy(sqlStmtInfo, "CLOSE statement failed");    
  EXEC SQL CLOSE curInParam;  
  return ( 0 );
  return_error:
  {  
    strcpy(sqlstate, sqlca.sqlstate);      
    sprintf(diagMsg, "%d", sqlca.sqlcode);
    strcat(diagMsg, ": ");
    strcat(diagMsg, sqlStmtInfo);
    return ( 0 );
  }
} /* InParams function */ 

Про производительность ничего не скажу, но MSSQL-цы и ораклисты зря боялись.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591222
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подчёркиваю, второй текст (SP на C) не был получен трансляцией первого (SP на SQL PL). На C писали "от сотворения" (ну, или от DB2 Common Server 2.1, как минимум). Разница же не так уж велика.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591223
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Выбегалло

Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.

Cool ! компилировать трояна в C сторед процедуру, это что какой-то вид аудита ? :) не слышал о такой фичи у оракла :)

ЗЫ. видел люди ставили иконки на сервер, но чтоб компилятор выковыривать, это впервые. послушайте расскажите нам серым, а perl, bash, java вы тоже выковыриваете ? особо интересует методика выковыривания C компилятора из db2 8.2 ;)

Выковыривать надо серу из ушей, а cc просто используется. как отдельный продукт. можете не ставить, но тогда хранимые процедуры на данной машине - не скомпилировать.
Хотя что это я бисер мечу перед виндоузником...
...
Рейтинг: 0 / 0
25 сообщений из 178, страница 2 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / DB2 Express-C против - MS SQL Server 2000 -???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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