powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MS SQL & Oracle 10 g
70 сообщений из 70, показаны все 3 страниц
MS SQL & Oracle 10 g
    #33776856
Iura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем

Конкретный вопрос для сравнения двух продуктов.

В базе данных хранится текст. Мне нужно сделать разбивку текста по предложениям (для примера используем простейшие признаки окончания предложения - . ! ?) Поскольку в будущем разбивка на предложения будет гораздо сложнее и учитывать множество факторов (например пользователи сами смогут создавать правила на regular expressions), я отказался от написания процедуры на T-SQL и решил саму процедуру на C# или C++, а полученую откомпелированную функцию подключать к SQL 2005 как exteranal stroed procedure.

Я полагаю, что такое взаимодействие TSQL и C# или C++ будет сильно напрягать
SQL 2005.

Насколько эффективно решение той же задачки на Oracle 10g ?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33776971
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про CLR Integration в 2005-ом Вы таки ни разу не слышали?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33776979
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у оракла regular expression можно использовать в SQL, т.е. с ораклом ничего кроме обычного SQL тебе не понадобится.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777008
Iura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!!у оракла regular expression можно использовать в SQL, т.е. с ораклом ничего кроме обычного SQL тебе не понадобится.

Вот я тоже об этом думаю. Плюс у него есть поддержка ООП. А иногда это удобно.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777121
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iura
Я полагаю, что такое взаимодействие TSQL и C# или C++ будет сильно напрягать
SQL 2005.

Полезно читать документацию, хотя бы иногда. Если сделаю с использованием C# процедуры, то должно работать быстрее чем аналогичный код в Oracle.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777135
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm
Полезно читать документацию, хотя бы иногда. Если сделаю с использованием C# процедуры, то должно работать быстрее чем аналогичный код в Oracle.
ага C# быстрее нативного SQL :) че курим ?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777143
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! andsm
Полезно читать документацию, хотя бы иногда. Если сделаю с использованием C# процедуры, то должно работать быстрее чем аналогичный код в Oracle.
ага C# быстрее нативного SQL :) че курим ?
Тесты производительности, которые я делал для сравнения производительности C# и TSQL.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777164
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Полезно читать документацию, хотя бы иногда. Если сделаю с
> использованием C# процедуры, то должно работать быстрее чем аналогичный
> код в Oracle.
>
> ага C# быстрее нативного SQL :) че курим ?
ну... если сравнивать вроде как бы нативный бинарник, скомпиленный под
нужную ось, с вроде как байт-кодом, исполняемым каким-то аппаратом
исполнения (sql engine), то нативный бинарник должон быть быстрее. вроде
как. не знаю как насчет проц в оракле, которые вроде как можно
скомпилить в те-же самые нативные бинарники....

зы как показывает практика - компилированая прога как правило быстрее,
чем интерпретируемая (коряво сказал, но общий смысел вроде ясен).


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777189
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
ну... если сравнивать вроде как бы нативный бинарник, скомпиленный под
нужную ось, с вроде как байт-кодом, исполняемым каким-то аппаратом
исполнения (sql engine), то нативный бинарник должон быть быстрее. вроде
как. не знаю как насчет проц в оракле, которые вроде как можно
скомпилить в те-же самые нативные бинарники....

зы как показывает практика - компилированая прога как правило быстрее,
чем интерпретируемая (коряво сказал, но общий смысел вроде ясен).

да не в этом дело. SQL запускается в другом контексте нежели CLI машина, т.е. неважно что там, но эти переключения никак не допустят исполнится быстрее чем только SQL.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777221
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! locky
ну... если сравнивать вроде как бы нативный бинарник, скомпиленный под
нужную ось, с вроде как байт-кодом, исполняемым каким-то аппаратом
исполнения (sql engine), то нативный бинарник должон быть быстрее. вроде
как. не знаю как насчет проц в оракле, которые вроде как можно
скомпилить в те-же самые нативные бинарники....

зы как показывает практика - компилированая прога как правило быстрее,
чем интерпретируемая (коряво сказал, но общий смысел вроде ясен).

да не в этом дело. SQL запускается в другом контексте нежели CLI машина, т.е. неважно что там, но эти переключения никак не допустят исполнится быстрее чем только SQL.
спорное утверждение.
Вы же не можете сказать, сколько "стоит" такое переключение, а также насколько сильный эффект оно окажет на работу всей программы.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777227
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> да не в этом дело. SQL запускается в другом контексте нежели CLI машина,
> т.е. неважно что там, но эти переключения никак не допустят исполнится
> быстрее чем только SQL.
вопрос (встречный) - чо курим?
Ви хотите сказать, что нечто вроде
Код: plaintext
1.
  for I =  1  to  10000  do ;
выполнится быстрее на SQL, чем на c#?
ой врядли.... попробуйте теорию практикой... урод эксперимент убьёт!
красавицу теорию....
а ведь задача разбивки на предложения - это чистые циклы и сравнения.


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777250
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2locky
я конечно понимаю твое жгучее желание поспорить, но давай сначала выясни что такое SQL ;)
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777400
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле в чем-то Yo!! прав.
SQL запрос более вероятно выполнится быстрее чем код на C#. Только на эту проблему нужно смотреть несколько иначе IMHO.

Давай те смотреть на на for i=1 to 100000 do; а на более серьезные вещи типа select'oв

Задача поиска слона в африке
Есси мы пишем ее на С# это будет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if слон not exist in Kong go to limpopo
      return слон
if слон not exist in Kong go to limpopo
      return слон
if слон not exist in Kong go to limpopo
      return слон
--на SQL это будет выглядеть как 
SELECT слон from африка

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

Код: 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.
  DECLARE c1 CURSOR FOR 
    SELECT firstnme, midinit, lastname 
    FROM employee
    ORDER BY midinit DESC;
  DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET counter = - 1 ;

  -- initialize OUT parameter
  SET counter =  0 ;
  OPEN c1;
  fetch_loop:
  LOOP
    FETCH c1 INTO 
      v_firstnme, v_midinit, v_lastname;
    -- Use a local variable for the iterator variable
    -- because SQL procedures only allow you to assign 
    -- values to an OUT parameter
   if v_midinit = ' ' then
    SET v_counter = v_counter +  1 ;
      LEAVE fetch_loop;
    return v_counter;
    END IF;
  END LOOP fetch_loop;
  CLOSE c1;
Это будет гораздо медленнее чем
Код: plaintext
1.
select count(*) from EMPLOYEE where midinit= ' '

Причем если запрос с count(*) можно оптимизоваровать, строить разные индексы партиционировать таблицы по midinit, то во втором случае, максимум чего можно достигнуть это написать на C, чтобы сократить затраты на .NET или на интерпретатор.

Понятно что если случаи когда более удобно пользоватся тем или иным подходом, но всегда нужно оценивать принимаемое решение. По мне проще и будет писать многокилобайтные запросы чем городить SP. Опять же будет зависить от конкретной ситуаци.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777407
тлгдшлщм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправочка
Нет слона в конго идем в лимпопо, нет в лимопопо идем у уганднду, return слон
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777436
alexey_tm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не могу понять, в чем спор.
Если необходимо все это делать в БД, её средствами, выбирая из ее таблиц, что бы там не говорили, SQL будет работать быстрее, просто по тому, что в любом случае, будет выполняться SQL запрос: данные нужно выбрать затем обработать и положить "на место".
Если говорить о Oracle, то вообще-то любой SQL будет превращен в исполняемый код, а не интерпретирован, хотя на самом деле все сложнее. Если данные запрос будет повторятся постоянно и он правильно написан, то компиляция его будет произведена только один раз.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777489
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to nkulikov

бред!
что мешает выполнить SELECT слон from африка из контекста CLR процедуры?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777564
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!да не в этом дело. SQL запускается в другом контексте нежели CLI машина, т.е. неважно что там, но эти переключения никак не допустят исполнится быстрее чем только SQL.
В SQL Server нет такой разницы между TSQL и SQL как между PL/SQL и SQL в Oracle.

Я делал тесты чтобы проверить происходит ли переключение контекстов и сколько это переключение стоит. Результат - переключения контекстов отсутствует. Вызов ничего не делающей функции на C#, в цикле, 1000000 раз, происходит быстрее, примерно на 30%, чем вызов аналогичной функции на TSQL. Это означает что CLR integration сделана очень хорошо.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777566
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Even without CLR support, it is important to recognize that database applications should use the declarative query language as much as possible . This portion of the language is able to leverage the power of the query processor, which is best able to optimize and perform bulk operations. Database applications should only resort to procedural programming to express logic that cannot be expressed within the query language.

All of this remains true with CLR support in SQL Server: the CLR should not be used to write procedural code that can be expressed using the declarative features of the T-SQL language. Developers should be aware that there are a number of significant enhancements to the T-SQL query language in SQL Server 2005 that augment the expressive power of the T-SQL query language, and should ensure that they are taking full advantage of them before writing procedural code, whether in the CLR or not. Some of these added features include:

(C) MSDN

ЗЫ. я смотрю МС тоже с трудом отличает декларативный SQL от процедурного расширения T-SQL :)
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777614
тлгдшлщм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2хламист:
хламист
бред!
что мешает выполнить SELECT слон from африка из контекста CLR процедуры?

и это будет более производительно чем вызов запроса напрямую???

Ты хотябы понял идею того что я пытался объяснить. Перед тем как говорить бред не бред.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777615
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsm
В SQL Server нет такой разницы между TSQL и SQL как между PL/SQL и SQL в Oracle.

а вот МС с вами не согласен :) (см цитату с MSDN выше)

andsm
Я делал тесты чтобы проверить происходит ли переключение контекстов и сколько это переключение стоит. Результат - переключения контекстов отсутствует. Вызов ничего не делающей функции на C#, в цикле, 1000000 раз, происходит быстрее, примерно на 30%, чем вызов аналогичной функции на TSQL. Это означает что CLR integration сделана очень хорошо.

непонял что тут мерялось, то что CLR откомпилировалось, а T-SQL еще не дорос до native compilation .. дык это итак было известно. Вот погоняйте рандомные данные (T-SQL vs CLR), а потом сравните с функцией чистого SQL.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777627
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikov wrote:
> Автор: nkulikov
> На самом деле в чем-то Yo!! прав.
> SQL запрос более вероятно выполнится быстрее чем код на C#. Только на
> эту проблему нужно смотреть несколько иначе IMHO.
>
> Давай те смотреть на на for i=1 to 100000 do; а на более серьезные вещи
> типа select'oв
>
> Задача поиска слона в африке
> Есси мы пишем ее на С# это будет
Может Yo! и прав, и может, правы и Вы, решая задачу поиска сферического
коня в вакууме... однако исходный вопрос был "разбиение текста на
предложения: T-SQL vs C#"
может быть! есть декларативный язык который это умеет... но T-SQL явно
не из из числа. поэтому моя имха такая: выделение предложений из текста
при помощи внешней процы написанной на c# будет быстрее, чем при помощи
процы на T-SQL, поскольку накладные расходы на "переключения контекста"
для вызова C# с лихвой покроют относительную неторопливость исполнения
T-SQL процедуры.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777680
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме того, проведя (как сейчас вспомнил) некоторые изыскания....
выяснил: имелся некий набор UDF для манипуляций с датой и строками
(обрезать время, собрать дату, получить первый-последний день месяца,
преобразовать '1а' в '00000001а' для использования в сортировках и
т.д.). Аналоги, реализованные на C# работали быстрее, чем T-SQL UDF.
Происходило это (предположительно) за счет меньших накладных расходов
при вызове C# UDF по сравнению с T-SQL UDF. Вот такая странность,
внятного (для меня) объяснения не видел (особо и не искал).

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

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777704
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты прав locky. Но инициатору я бы рекомендовал не С#, а с/c++ так как в этом случае будет меньше вопросов с переносом кода с одной БД на другую
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777834
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2locky
чтоб что-то доказать лучше напишите простенькую функцию upper() на t-sql и clr и сравните на мульонной табличке, а потом сравните с нативным SQL.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33777843
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikov wrote:
> Ты прав locky. Но инициатору я бы рекомендовал не С#, а с/c++ так как в
> этом случае будет меньше вопросов с переносом кода с одной БД на другую
не... если на MS SQL - то уж лучше C#(это если юкон), потому как
геммороя с ESP в 2000 - порядком :-(. Правда, был в свое время набор
компонентов для дельфина, который таки гемморой значительно сокращал...
да и не шибко рекомендует вроде MS писать ESP на чем-нить кроме C#...
и с люпбжком к базе в шарпе - получше, значительно... да и
документирован он лучше, чем йентот ODS (приходилось подымать доки
вплоть до 6.5, чтобы чего-то понять).
--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778094
Iura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky
nkulikov wrote:
> Автор: nkulikov
> На самом деле в чем-то Yo!! прав.
> SQL запрос более вероятно выполнится быстрее чем код на C#. Только на
> эту проблему нужно смотреть несколько иначе IMHO.
>
> Давай те смотреть на на for i=1 to 100000 do; а на более серьезные вещи
> типа select'oв
>
> Задача поиска слона в африке
> Есси мы пишем ее на С# это будет
Может Yo! и прав, и может, правы и Вы, решая задачу поиска сферического
коня в вакууме... однако исходный вопрос был "разбиение текста на
предложения: T-SQL vs C#"
может быть! есть декларативный язык который это умеет... но T-SQL явно
не из из числа. поэтому моя имха такая: выделение предложений из текста
при помощи внешней процы написанной на c# будет быстрее, чем при помощи
процы на T-SQL, поскольку накладные расходы на "переключения контекста"
для вызова C# с лихвой покроют относительную неторопливость исполнения
T-SQL процедуры.


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3


Думаю ты прав!
Хотя и часть логики (типа Insert, delete) мне тоже наду будет выполнить в dll, в общем счете это будет быстрее и проще чем писать на T-SQL. Работа в C# со строками лучше организована.

А может быть быстрее все написать на PL-SQL?

Вот пример. Делаем разбор предложения.

Друган, зайди пожалуйста на сайт lastgame.games.ru найди мне код для игрушки и скинь ее на мыло afrika@kenguru.com.su причем не забудь это сделать сегодняяя !!!!!

Использовать признак окончание предложения - . и ! не получается. Точка используется для электронных адресов, а кол-во ! знаков больше >1.

Если использовать T-SQL substring для получения каждого символа текста и предложения. Преполагаю, что быстродействие substring будет ниже чем stringbuilder.getchar()
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778104
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> 2locky
> чтоб что-то доказать лучше напишите простенькую функцию upper() на t-sql
> и clr и сравните на мульонной табличке, а потом сравните с нативным SQL.
а вот давайте сравним
Код: plaintext
1.
2.
for i =  0  to  10  do
  for j =  0  to  10000000  do ;
и
Код: plaintext
1.
2.
  for i =  0  to  10000000  do
   for j =  0  to  10  do ;

что быстрее? первый вариант, но это уже - отклонение от темы.
независимо от того, на чем писать - T-SQL или C# - задача разбивается на
2 этапа:
1. извлечь данные
2. преобразовать данные.

первый этап по любому будет выполнятся каким-нить select ... from ...
where ...
а вот второй этап (наиболее ресурсоемкий) - скорее всего выгоднее будет
писать на C# а не на T-SQL.
Что-то мне подсказывает, что оракловские regexp'ы реализованы в виде
некого бинарника, подключаемого по дефолту.
Если это так, то чем отличается ESP, написанная на C# и подключенная к
MS SQL от ESP, написанной (скорее всего) на С, и подключенной к ораклу?
Бантиками, разве что...
тем паче, что Вы сами то-что сказали "нативный upper" быстрее
самописного на T-SQL. Нативный upper реализован всё-таки в виде некой
сишной функции. Следовательно, более сложное преобразование строки будет
работать быстрее в виде реализации на C# (а не на T/PL-SQL).


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778129
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЧто-то мне подсказывает
Если внутренний голос говорит вам, что вы все сделали правильно, не обольщайтесь, возможно, это спам. (С)

Протрать 10 минут напиши upper() и замерь. а мы все рассставим по местам. :)
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778151
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Iura
объясни внятно задачу, а то щас выснится что база тебе нужна лишь для того, чтоб складывать предложения.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778162
Iura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!!2Iura
объясни внятно задачу, а то щас выснится что база тебе нужна лишь для того, чтоб складывать предложения.

Принял идею!
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778257
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Что-то мне подсказывает
>
>
> Если внутренний голос говорит вам, что вы все сделали правильно, не
> обольщайтесь, возможно, это спам. (С)
>
> Протрать 10 минут напиши upper() и замерь. а мы все рассставим по местам. :)
upper писать не стал, поднял старый тестовый проект.
функция, которая из '123f' делает '0000000123f'.
т.е. определяет "числовую часть", добивает её нулями слева до 10-ти
символов и дописывает в конец строковую часть.
назначение - использование в сортировке (сортировать дома по номеру и т.д.).

на 100000 вызовов:
пустой цикл: 1913
t-sql 5980-1913=4067
crl 4496-1913=2583
время дано в милисекундах.
видим: ф-я написаная на C# быстрее ф-ии на T-SQL.

зы в шарпе не силен, может там и быстрее можно было сделать - не
задавался такой целью.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778310
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2locky
попробую на пальцах:
select tsql_upper(filed) from table where id=1
и
select clr_upper(filed) from table where id=1
вполне вероятно и не будут особо различатся по времени, но меня интересует

select * from table where tsql_upper(filed) = 'SHIT'
и
select * from table where clr_upper(filed) = 'SHIT'
на милинах строк.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778805
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Автор: Yo.!!
> 2locky
> попробую на пальцах:
> select tsql_upper(filed) from table where id=1
> и
> select clr_upper(filed) from table where id=1
> вполне вероятно и не будут особо различатся по времени, но меня интересует
для "палечных": гонялся цикл на 100000 итераций. результат - приведен выше.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
set nocount on
declare @d datetime,@i int,@j int,@s varchar( 512 )
set @i =  0 
set @d = getDate()
while @i <  100000  begin
  set @i = @I+ 1 
-- set @s = dbo.fn_virtualnumber('123a')
-- set @s = dbo.fn_virtualnumber_clr('123a')
end
select datediff(ms,@d,getdate())
go

> select * from table where tsql_upper(filed) = 'SHIT'
> и
> select * from table where clr_upper(filed) = 'SHIT'
> на милинах строк.
Код: plaintext
1.
select max(valuechar) from value_t
9 секунд

Код: plaintext
1.
select max(dbo.fn_virtualnumber(valuechar)) from value_t
2 минуты 33 секунд

Код: plaintext
1.
select max(dbo.fn_virtualnumber_clr(valuechar)) from value_t
1 минута 12 секунд.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
     [Microsoft.SqlServer.Server.SqlFunction]
     public static SqlString fn_VirtualNumber_clr(SqlString str)
     {
         if (str.IsNull) return str;
         int idx;
         String digits = "0123456789";
         idx = - 1 ;
         for (int i =  0 ; (i < str.Value.Length);i++ )
         {
             if (digits.IndexOf(str.Value[i]) == - 1 )
             {
                 idx = i;
                 break;
             }
         }
         if (idx == - 1 ) return str.Value.PadLeft( 8 , '0');
         else
         {
             return str.Value.Substring( 0 ,idx).PadLeft( 8 , '0') + 
str.Value.Substring(idx);
         };
         return new SqlString("");
     }

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create function fn_virtualnumber(@str varchar( 255 ))
returns varchar( 255 )
as begin
if @str is null return null
declare	@i int,@s varchar( 255 )

select @i = patindex('%[^0123456789]%',@str)
if @i =  0 
  select	@str = right('0000000000'+@str, 8 )
else set @str = 
right('0000000000'+substring(@str, 1 ,@I- 1 ), 8 )+substring(@str,@i, 255 )

  return (@Str)
end
GO

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33778809
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: value_t - 9,010,032 строк.


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33788178
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А насколько чистый был эксперимент? Экземпляр БД перезапускался перед прогонами? Есть подозрение, что разница во времени связана с дисковыми операциями.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33788374
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fn_VirtualNumber_clr не хватает атрибута о том что это deterministic функция. Этот атрибут может ускорить выполнение.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33789899
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ApexА насколько чистый был эксперимент? Экземпляр БД перезапускался перед прогонами? Есть подозрение, что разница во времени связана с дисковыми операциями.
Когда-то тоже ставил подобные эксперименты, с перезапусками и т.п, результат похожий - вызов clr функции в 1.5-2 раза быстрее вызова аналогичной t-sql функции
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33789963
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apex wrote:
> А насколько чистый был эксперимент? Экземпляр БД перезапускался перед
> прогонами? Есть подозрение, что разница во времени связана с дисковыми
> операциями.
Нет, не перезапускался.
черезполносно запускался один и другой вариант, примерно раз по 20,
бралась средняя цифра.
Чтобы избежать влияния дисковых операций - рулил простым циклом (просто
Yo!! захотелось на таблице - зарулил на таблице).


>fn_VirtualNumber_clr не хватает атрибута о том что это deterministic
>функция. Этот атрибут может ускорить выполнение.
Надо попробовать - спасибо

>Когда-то тоже ставил подобные эксперименты, с перезапусками и т.п,
>результат похожий - вызов clr функции в 1.5-2 раза быстрее вызова
>аналогичной t-sql функции

MS когда-то публиковало статью, в которой пояснялось, почему CLR UDF
быстрее чем T-SQL. За неимением глубоких знаний .Net статью не осилил в
полном объеме :-(
Дело касалось не только скорости выполнения тела UDF (тут вроде всё
понятно), но и накладных расходов при вызове UDF.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790041
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ерунда - тест во первых не тот что я хотел, а во вторых наверника не чистый. правда сам тоже тест не осилил, как я понял без visual studio clr вообще не развернуть, пришлость качать... пля, уже ушло не одна пол-литра но так и не нашел в этой студии элементарного - куда запросы писать. в моей бетте хоть query analyzer был, тут его нет. попробую на выходных побороть эту студию и запустить тест, хотя сумневаюсь я, что я увижу что-то кроме очевидного:


Чтобы определиться с тем, когда использовать язык T-SQL, а когда — язык CLR, нужно помнить, что расширения CLR более уместны, когда необходим высокий уровень вычислений или манипуляций с текстом. Для задач, имеющих дело с большим количеством данных, решения на T-SQL лучше, чем решения на CLR, потому что T-SQL более тесно работает с данными и не требует сложных транзакций (многочисленных переходов) между CLR и SQL OS.
http://old.osp.ru/win2000/2005/08/034.htm
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790069
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> да ерунда - тест во первых не тот что я хотел, а во вторых наверника не
> чистый. правда сам тоже тест не осилил, как я понял без visual studio
Дайте текст теста (или описание) - какой Вы хотите. Осилим.

> clr вообще не развернуть, пришлость качать... пля, уже ушло не одна
> пол-литра но так и не нашел в этой студии элементарного - куда запросы
> писать. в моей бетте хоть query analyzer был, тут его нет. попробую на
> выходных побороть эту студию и запустить тест, хотя сумневаюсь я, что я
> увижу что-то кроме очевидного:
Не осилить GUI - это рулезь ;-)

> Чтобы определиться с тем, когда использовать язык T-SQL, а когда - язык
> CLR, нужно помнить, что расширения CLR более уместны, когда необходим
> высокий уровень вычислений или манипуляций с текстом. Для задач, имеющих
Собственно, в этом топике как раз такая задача и ставилась - парсинг текста.

> дело с большим количеством данных, решения на T-SQL лучше, чем решения
> на CLR, потому что T-SQL более тесно работает с данными и не требует
> сложных транзакций (многочисленных переходов) между CLR и SQL OS.
Поясните тогда, почему вызов "пустой" функции на CLR происходит быстрее,
чем на T-SQL.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790126
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyНе осилить GUI - это рулезь ;-)
ну судя по гуглу я не один такой, без смеха куда там можно писать запросы ?? поскольку субд XE ничерта кроме студии нет, куда вот этот код можно писать ?

lockyПоясните тогда, почему вызов "пустой" функции на CLR происходит быстрее,
чем на T-SQL.

это же очевидно, потому что нет переключений между CLR и SQL OS. вот осилю студию посмотрим на мои цифры :)
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790184
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> ну судя по гуглу я не один такой, без смеха куда там можно писать
> запросы ?? поскольку субд XE ничерта кроме студии нет, куда вот этот
> <http://old.osp.ru/win2000/2005/08/034_lis8.htm> код можно писать ?
можно юзать QA от 7-2000, можно с сайта взять тулзу размером в метр -
умеет выполнять запросы (хотя вид - поделка на коленке). Навскидку - не
помню, но с Экпрессом вроде как идет командно-строчная утиль, нечто
вроде isql или osql.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790419
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
можно юзать QA от 7-2000, можно с сайта взять тулзу размером в метр -
умеет выполнять запросы (хотя вид - поделка на коленке). Навскидку - не
помню, но с Экпрессом вроде как идет командно-строчная утиль, нечто
вроде isql или osql.

т.е. заплатив туеву хучу бабла за студию юзер на нем элементарно запрос отладить не может и эти люди мне тут рассказывают ужасы про оракловые тулзы ...
к стате я нашел как можно выкрутится, если в процедуре выделить фрагмент то его можно выполнить, но приходится вырезать оператор GO и отладить/посмотреть план уже никак ... в osql у меня даже Ctr+V неработает
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790443
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Автор: Yo.!!
> locky
>
> можно юзать QA от 7-2000, можно с сайта взять тулзу размером в метр -
> умеет выполнять запросы (хотя вид - поделка на коленке). Навскидку - не
> помню, но с Экпрессом вроде как идет командно-строчная утиль, нечто
> вроде isql или osql.
>
>
> т.е. заплатив туеву хучу бабла за студию юзер на нем элементарно запрос
> отладить не может и эти люди мне тут рассказывают ужасы про оракловые
> тулзы ...
> к стате я нашел как можно выкрутится, если в процедуре выделить фрагмент
> то его можно выполнить, но приходится вырезать оператор GO и
> отладить/посмотреть план уже никак ... в osql у меня даже Ctr+V неработает
Со студией не пробовал, работал с MSSSC...
но, чуть покопавшись, file\new\project\other project
types\database\database project.
Добавить новый Queries.
шорткат для запуска - пока не искал, в поп-ап меню - run.


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790448
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще теоритический вопрос: я могу делать CREATE ASSEMBLY C# кода или я обязан чем-то сначала dll делать ?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790455
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Добавить новый Queries.
шорткат для запуска - пока не искал, в поп-ап меню - run.

ага, а теперь попробуй мышой T-SQL нарисовать
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790491
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Добавить новый Queries.
> шорткат для запуска - пока не искал, в поп-ап меню - run.
>
> ага, а теперь попробуй мышой T-SQL нарисовать
Чувак! Я нихрена не понял из того, что ты сказал! Но твои слова
достучались до моего сердца! Я помогу тебе! (С) Пыхарь и хроник.

причем тут мыша? Ну объясните старику? Там ТЕКСТОВЫЙ редактор, садись да
тыркай по кнопкам.
При желании можно таки еще и шорткат назначить (Project.Run), вот только
все более-менее удобные шорткаты заняты, а разбираться, как назначить
шорткат для указанной области - мне лично влом, у меня есть "нормальная"
консоль.

зы и это человек кричал тут: да вы оракл просто готовить не умеете, ламеры!
ззы пока такие люди в стране совеЦЬкой еззь... (С) В.В.Маяковский.


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790521
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
текстовый !? доберусь до дому буду искать, я все меню облазил, в database project было New Query, его же можно с Object browser правой кнопки мыши запустить - это для полных мудаков рисовать SQL запросы мышой.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790572
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Автор: Yo.!!
> текстовый !? доберусь до дому буду искать, я все меню облазил, в
> database project было New Query, его же можно с Object browser правой
> кнопки мыши запустить - это для полных мудаков рисовать SQL запросы мышой.
Solution Explorer\Queries
правой - Add new item\SQL Script.
есть там и Database Query - оно таки да, визуальное.
--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790618
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Solution Explorer\Queries
правой - Add new item\SQL Script.
есть там и Database Query - оно таки да, визуальное.

надеюсь ты про это ? и там add new item позволит запускать t-sql скрипты ??

ЗЫ мне интересно это только у меня не хватает нтуиции искать запуск t-sql скриптов в sql query дизайнере в разделе add new item правда я признатся еще не нашел даже как SQL запрос с клавы вбить...
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790748
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну...
вообще, обычно люди запросы пишут либо в Query Analizer'e, либо Management Studio.
В VS это сложнее
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33790822
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AAronну...
вообще, обычно люди запросы пишут либо в Query Analizer'e, либо Management Studio.
В VS это сложнее
да нету в этом express edition ни QA ни Management Studio, на другом виндовсе у меня есть betta2, там есть, но там нет студии, чтоб CLR развернуть ...
теоритический вопрос: я могу делать CREATE ASSEMBLY C# кода или я обязан чем-то сначала dll делать ?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791193
Фотография DarkSquid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, интуитивность интерфейса растёт не по дням, а по часам.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791264
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkSquid wrote:
> Автор: "DarkSquid"
> Да, интуитивность интерфейса растёт не по дням, а по часам.
это да. даже с консоли - хреново работать (по крайней мере после QA)
а в студии - мрак, если не сказать больше (по крайней мере со скриптами
и прочем сюдаотносящейся лабудой).

2Yo!!
а фиг его знает - про это я или не про это. Пока не установил себе
четких соотвествий - чего как называется. наверное - и не буду. Консоль
всё-таки удобнее

--
-------------------------
There\'s no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791279
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! AAronну...
вообще, обычно люди запросы пишут либо в Query Analizer'e, либо Management Studio.
В VS это сложнее
да нету в этом express edition ни QA ни Management Studio, на другом виндовсе у меня есть betta2, там есть, но там нет студии, чтоб CLR развернуть ...
теоритический вопрос: я могу делать CREATE ASSEMBLY C# кода или я обязан чем-то сначала dll делать ?
Тулзы идут либо отдельным пакетом, либо в составе SQL Server 2005 (например, Developer Edition).

CREATE ASSEMBLY можно сделать для DLL, т.е. код надо компилить сначала.
BOLCREATE ASSEMBLY uploads an assembly that was previously compiled as a .dll file from managed code for use inside an instance of SQL Server.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791294
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
DarkSquid wrote:
> Автор: "DarkSquid"
> Да, интуитивность интерфейса растёт не по дням, а по часам.
это да. даже с консоли - хреново работать (по крайней мере после QA)
а в студии - мрак, если не сказать больше (по крайней мере со скриптами
и прочем сюдаотносящейся лабудой).

2Yo!!
а фиг его знает - про это я или не про это. Пока не установил себе
четких соотвествий - чего как называется. наверное - и не буду. Консоль
всё-таки удобнее

--
-------------------------
There\'s no silver bullet!
Posted via ActualForum NNTP Server 1.3
буквально на днях то ли вышел CTP редакции VS for Database Developer, то ли должен выйти.
здесь ссылка
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791454
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, что вмешиваюсь в ваш мудрый научный спор, но правильно ли я понял по его прочтении, что регулярных выражений тоже нету в MS SQL?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791577
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAlПростите, что вмешиваюсь в ваш мудрый научный спор, но правильно ли я понял по его прочтении, что регулярных выражений тоже нету в MS SQL?
а они есть где-то они есть в конструкциях языка?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791591
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел !
действительно в solution explorer, видно я совсем попорчен ужастными оракловыми тулзами :) поэтому туда заглянуть интуиции не хватило (зато продуктивно провел 30 минут за прочтением Understanding Visual Database Tools)

2DocAl
в mssql в SQL и T-SQL нету только в CLR
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791659
Фотография Дикий Билл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!да нету в этом express edition ни QA ни Management StudioВ новом (сп1) есть. И даже репортинг сервисес включили. Но даже в той версии была утилита sqlcmd.exe. А код на с# можно было и в блокноте набрать да откомпилировать.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791661
Фотография Дикий Билл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да в крайнем случае сделать простейшую формочку с текстовым полем для ввода запроса и табличкой для вывода результата...
Кстати QA от 2000 цепляется к 2005
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791775
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AAron DocAlПростите, что вмешиваюсь в ваш мудрый научный спор, но правильно ли я понял по его прочтении, что регулярных выражений тоже нету в MS SQL?
а они есть где-то они есть в конструкциях языка?
Простите мне такое сравнение, но, скажем, в MySQL и PostgreSQL они есть.
Да, конечно, это расширение стандарта, но когда это останавливало Микрософт или Оракл?)
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791803
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAl
Простите мне такое сравнение, но, скажем, в MySQL и PostgreSQL они есть.
Да, конечно, это расширение стандарта, но когда это останавливало Микрософт или Оракл?)
когда эта фича станет модной, типа xml, тогда и сделают ;)
с другой стороны никто не мешает для mssql заюзать это
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33791950
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a в 2005 вообще можно обернуть CLR-функции для работы с regexp'ами в процедуры/функции T-SQL.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33826162
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Yo!!!
ну-с, и куда мы подевались?
Я, паче чаяния, думал - в отпуск человек ушел, потому и не пишет....
Как там Иксперементы с Острым Си и прочей лабудой?
Как изучение визюальной студии?
Или - как дело до практики - дык не наша задача мешки тягать - нам о
политике думать?

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33826174
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
2Yo!!!
ну-с, и куда мы подевались?
Я, паче чаяния, думал - в отпуск человек ушел, потому и не пишет....
Как там Иксперементы с Острым Си и прочей лабудой?
Как изучение визюальной студии?
Или - как дело до практики - дык не наша задача мешки тягать - нам о
политике думать?

да студия у меня только дома, а в такую погоду особо делать нечего, а через radmin gprs тормозит. сломался на студии, вот чо он хочет ?
ЗЫ. выложи тут dll чтоб без студии можно было сделать CREATE ASSEMBLY.
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33826191
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тебе чего-то...
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33826320
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
окуеть, действительно медленее :) причем на 2.3M разница на порядок. правда sql у меня посложней:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare @T datetime;
set @T=getdate();
SELECT COUNT(*) AS Expr1
FROM sys.sysprocesses AS a INNER JOIN
random_data AS b ON a.waittype =dbo.fn_shit(b.col3)
where b.col1< 10000 ;
print 'Elapsed:';
print datediff(ms,@T,getdate());

Код: plaintext
1.
2.
3.
4.
5.
6.
    [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true, DataAccess = Microsoft.SqlServer.Server.DataAccessKind.None)]
    public static SqlString fn_shit_clr(SqlString str)
    {
        if (str.IsNull) return str;
        return str + "shit";
        
    }

но тут помоему какой-то трабл у t-sql, он кушает не более 30% CPU, а CLR все 100% аж бровсер тормозит, если это не результат моих ручек то t-sql просто Sux с большой буквы. а теперь будет интересно посмотреть на оракл.

ЗЫ. solurion explorer -> add new test script оно не понимает даже GO и нет плана, может я там еще чего-то не нашел ?? куда я все таки должен писать sql скрипты в студии ?
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33826363
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, фигня какая-то именно у t-sql, на 2.3M записей oracle XE табличке:
Код: 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.
  select count(*) from all_objects a, tst b
where a.owner=fn_shit(b.col1) ;

  COUNT(*)
----------
         0

Elapsed: 00:00:13.12
SQL> /

  COUNT(*)
----------
         0

Elapsed: 00:00:13.02
SQL> /

  COUNT(*)
----------
         0

Elapsed: 00:00:13.34
select count(*) from all_objects a, tst b
  2  where a.owner=fn_shit(b.col1) and id<10000;

  COUNT(*)
----------
         0

Elapsed: 00:00:01.09
SQL> /

  COUNT(*)
----------
         0

Elapsed: 00:00:01.04
SQL> /

  COUNT(*)
----------
         0

Elapsed: 00:00:01.04


а t-sql :

Elapsed: 181516
Elapsed: 111330
Elapsed: 100593

это в милисекундах, т.е. на порядок медленее оракла. цифры CLR похожи на pl/sql
...
Рейтинг: 0 / 0
MS SQL & Oracle 10 g
    #33826654
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! wrote:
> Автор: Yo.!!
> но тут помоему какой-то трабл у t-sql, он кушает не более 30% CPU, а CLR
> все 100% аж бровсер тормозит, если это не результат моих ручек то t-sql
> просто Sux с большой буквы. а теперь будет интересно посмотреть на оракл.
там не в T-SQL собственно жоппа, а в реализации UDF, точнее их вызова...
Дык, никто и не скрывал что они как-то не так сделаны....
Хотя - до сих пор не вкурю, ПОЧЕМУ вызов T-SQL UDF происходит медленнее
чем CLR UDF. Надо будет напряч кого-нить из гуру, пусть пояснять.

зы с расчетными частями - оно как раз понятно, компилированный код по
жизни быстрее интепретируемого (правильно слово написал? утро, млин).


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
70 сообщений из 70, показаны все 3 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / MS SQL & Oracle 10 g
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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