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

Откуда: С-Петербург
Сообщений: 2347
Чтобы не искать утечки памяти - нужно писать ХП правильно.
А когда XP или FUNCTION поднимает перфоменс запроса на два порядка - это ооочень тешит мое самолюбие...)))
9 мар 06, 16:42    [2431614]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
gardenman
Чтобы не искать утечки памяти - нужно писать ХП правильно.
А когда XP или FUNCTION поднимает перфоменс запроса на два порядка - это ооочень тешит мое самолюбие...)))

Странно - если в ХП у меня используется только бизнес-логика в виде запросов и ветвлений через IF, если у сервера есть все необходимые штатные быстрющие функции работы с математикой, строками, датами, аналитикой и т.д., а всякие затратные, но не имеющие отношения к БД функции, типа "суммы прописью", перевода Gif в JPeg, распознавания текстов и т.д., хорошо и быстро работают на клиенте и отчетнике, то спрашивается - ну где там можно перфоменс на два порядка поднять, что нужно делать, чтобы такое различие скорости было заметно ? У меня честно говоря окромя сравнения, что на Си обрабатывать данные курсорчиками будет в 2 раза быстрее, чем в ХП, других мыслей в голову и не приходит. Так что колитесь ;)
9 мар 06, 16:48    [2431631]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
https://www.sql.ru/forum/actualthread.aspx?tid=184869&hl=tort#1552873
9 мар 06, 16:51    [2431644]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
ggv
Member

Откуда:
Сообщений: 1810
типа все заб[ы|и]ли на топик, и понеслась.....
Интересно, это свойство человеческой натуры вообще, или это мы, ITшники грешим только...
9 мар 06, 16:51    [2431646]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
2 ggv
Ага... все мы грешники... каюсь...
9 мар 06, 16:52    [2431649]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
ggv
Member

Откуда:
Сообщений: 1810
есть предложение...
Братьям по верем. По вере в IT.
Забить на все эти топики, с дурацкими вопросами этих, как их....
Пользователей, блин.
Тольку от них. Что от пользователей, что от вопросов их дурацких....
И собственно, занятся любимым делом!
Обсуждением нашей веры!
Лучше всего очно, в пивняке :)
Все одно этим заканчивается любой топик.
Ну в пивняке врядли получится, в смысле - в реальном. Мы, так сказать, "распределенное" сообщество.
То есть предлагаю наше распределенное сообщество интегрировать в виртуальном пивняке.
Где мы и займемся любимым делом :)
9 мар 06, 16:56    [2431678]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Leonid
Member [заблокирован]

Откуда: From nowhere
Сообщений: 743
ggv
Где мы и займемся любимым делом :)
Каким? :)
Расхваливать сервера и технологии, на которых работаем?
Ссориться и сраться за веру в великое будущее MS, IBM или Оракла?

Так мы и так этим занимаемся. Зачем нам виртуальный пивняк? :)
9 мар 06, 17:07    [2431737]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
ggv
Member

Откуда:
Сообщений: 1810
а вот как раз затем, чтобы заниматься любимым делом безотносительно ваших вопросов.
9 мар 06, 17:20    [2431845]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Leonid
Member [заблокирован]

Откуда: From nowhere
Сообщений: 743
ggv
а вот как раз затем, чтобы заниматься любимым делом безотносительно ваших вопросов.
Не понял, чьих "ваших вопросов"?

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

Поэтому "виртуальный кабак" придется разбивать на столик для DB2-шников, столик для MSSQL-евцев и т.д.
Так у нас и так форум разбит на "столики".
А драки, как положено, в курилке "Сравнение СУБД" :)
9 мар 06, 17:51    [2432015]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
ggv
Member

Откуда:
Сообщений: 1810
неее, суть в том, чтобы не ждать очередного топика для драки, а иметь ее перманентно, не обращая внимания собвтвенно на вопросы страждущих :)
Ну вот взять этот топик - ну и сколько сообщений по теме?
Воо, так нафига ждать прихода темы?
9 мар 06, 18:06    [2432123]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3823
ggv
Yo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.


За наличие C - компилятора на продакш машине надо ставить к стенке.
9 мар 06, 19:14    [2432398]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Выбегалло
ggv
Yo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.


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


В огороде бузина, а в Киеве дядька.
9 мар 06, 20:45    [2432606]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Да здравствует сухой закон!
9 мар 06, 20:47    [2432611]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Yo.!!
Guest
Выбегалло


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


непонял, это вы так с хакерами боретесь :) ? и шо помогает ?
9 мар 06, 20:51    [2432617]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3823
Victor Metelitsa
Выбегалло
ggv
Yo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.


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


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


JFYI : возможность создавать хранимые процедуры БЕЗ компилятора С в DB2 появилась, по-моему, с версии 8.2. До этого использование SP автоматически влекло установку компилятора. В том числе и на продакшн. Теперь понятней ?
9 мар 06, 21:10    [2432650]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3823
Yo.!!
Выбегалло


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


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


Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
9 мар 06, 21:27    [2432675]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Anton Demidov
Member

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

Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!
9 мар 06, 21:32    [2432689]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Выбегалло
Member

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

Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!


Выаод неправильный - переходить надо на Informix :-)
9 мар 06, 21:34    [2432696]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Выбегалло
Victor Metelitsa
Выбегалло
ggv
Yo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.


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


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


JFYI : возможность создавать хранимые процедуры БЕЗ компилятора С в DB2 появилась, по-моему, с версии 8.2. До этого использование SP автоматически влекло установку компилятора. В том числе и на продакшн. Теперь понятней ?

А в Америке негров линчуют.
9 мар 06, 21:39    [2432705]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

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

Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!

А в Киеве дядька.
9 мар 06, 21:41    [2432707]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Yo.!!
Guest
Выбегалло


Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, 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 ;)
9 мар 06, 21:44    [2432712]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Если вы пользуетесь покупной системой на Oracle, которая построена с использованием wrapped процедур, плюс клиентская часть на чём-то (Delphi/Java/etc), где гарантия, что там нет трояна? Проверить вы не сможете. (А будут исходники, действительно ли станете проверять, или доверитесь поставщику?). C-процедуры и функции DB2 нисколько не более опасны.

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

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

это всё-таки разные вещи. Но в обоих случаях, C-компилятор на production никогда не требовался и не требуется; если использовался C, то поставляются скомпилированные модули (DLL, shared libraries).
9 мар 06, 22:21    [2432781]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Вот вам SP на SQL PL (язык появился в DB2 v7 и усовершенствовался в v8).
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 (комментарии я выкинул).
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-цы и ораклисты зря боялись.
9 мар 06, 22:42    [2432824]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Подчёркиваю, второй текст (SP на C) не был получен трансляцией первого (SP на SQL PL). На C писали "от сотворения" (ну, или от DB2 Common Server 2.1, как минимум). Разница же не так уж велика.
9 мар 06, 22:46    [2432835]     Ответить | Цитировать Сообщить модератору
 Re: DB2 Express-C против - MS SQL Server 2000 -???  [new]
Выбегалло
Member

Откуда: Scottsdale, AZ, USA
Сообщений: 3823
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 просто используется. как отдельный продукт. можете не ставить, но тогда хранимые процедуры на данной машине - не скомпилировать.
Хотя что это я бисер мечу перед виндоузником...
9 мар 06, 22:46    [2432838]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7 8   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить