Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 15:38 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
Yo.!! wrote: > 2locky > чтоб что-то доказать лучше напишите простенькую функцию upper() на t-sql > и clr и сравните на мульонной табличке, а потом сравните с нативным SQL. а вот давайте сравним Код: plaintext 1. 2. Код: plaintext 1. 2. что быстрее? первый вариант, но это уже - отклонение от темы. независимо от того, на чем писать - 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 15:40 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
lockyЧто-то мне подсказывает Если внутренний голос говорит вам, что вы все сделали правильно, не обольщайтесь, возможно, это спам. (С) Протрать 10 минут напиши upper() и замерь. а мы все рассставим по местам. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 15:45 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
2Iura объясни внятно задачу, а то щас выснится что база тебе нужна лишь для того, чтоб складывать предложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 15:52 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
Yo.!!2Iura объясни внятно задачу, а то щас выснится что база тебе нужна лишь для того, чтоб складывать предложения. Принял идею! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 15:55 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:27 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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' на милинах строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 16:40 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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. > select * from table where tsql_upper(filed) = 'SHIT' > и > select * from table where clr_upper(filed) = 'SHIT' > на милинах строк. Код: plaintext 1. Код: plaintext 1. Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 18:58 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
Вдогонку: value_t - 9,010,032 строк. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 19:00 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
А насколько чистый был эксперимент? Экземпляр БД перезапускался перед прогонами? Есть подозрение, что разница во времени связана с дисковыми операциями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2006, 16:48 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
fn_VirtualNumber_clr не хватает атрибута о том что это deterministic функция. Этот атрибут может ускорить выполнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2006, 17:30 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
ApexА насколько чистый был эксперимент? Экземпляр БД перезапускался перед прогонами? Есть подозрение, что разница во времени связана с дисковыми операциями. Когда-то тоже ставил подобные эксперименты, с перезапусками и т.п, результат похожий - вызов clr функции в 1.5-2 раза быстрее вызова аналогичной t-sql функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 12:44 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 12:59 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
да ерунда - тест во первых не тот что я хотел, а во вторых наверника не чистый. правда сам тоже тест не осилил, как я понял без 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 13:22 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 13:30 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
lockyНе осилить GUI - это рулезь ;-) ну судя по гуглу я не один такой, без смеха куда там можно писать запросы ?? поскольку субд XE ничерта кроме студии нет, куда вот этот код можно писать ? lockyПоясните тогда, почему вызов "пустой" функции на CLR происходит быстрее, чем на T-SQL. это же очевидно, потому что нет переключений между CLR и SQL OS. вот осилю студию посмотрим на мои цифры :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 13:50 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 14:04 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
locky можно юзать QA от 7-2000, можно с сайта взять тулзу размером в метр - умеет выполнять запросы (хотя вид - поделка на коленке). Навскидку - не помню, но с Экпрессом вроде как идет командно-строчная утиль, нечто вроде isql или osql. т.е. заплатив туеву хучу бабла за студию юзер на нем элементарно запрос отладить не может и эти люди мне тут рассказывают ужасы про оракловые тулзы ... к стате я нашел как можно выкрутится, если в процедуре выделить фрагмент то его можно выполнить, но приходится вырезать оператор GO и отладить/посмотреть план уже никак ... в osql у меня даже Ctr+V неработает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 14:57 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:03 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
и еще теоритический вопрос: я могу делать CREATE ASSEMBLY C# кода или я обязан чем-то сначала dll делать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:03 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
locky Добавить новый Queries. шорткат для запуска - пока не искал, в поп-ап меню - run. ага, а теперь попробуй мышой T-SQL нарисовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:05 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
Yo.!! wrote: > Добавить новый Queries. > шорткат для запуска - пока не искал, в поп-ап меню - run. > > ага, а теперь попробуй мышой T-SQL нарисовать Чувак! Я нихрена не понял из того, что ты сказал! Но твои слова достучались до моего сердца! Я помогу тебе! (С) Пыхарь и хроник. причем тут мыша? Ну объясните старику? Там ТЕКСТОВЫЙ редактор, садись да тыркай по кнопкам. При желании можно таки еще и шорткат назначить (Project.Run), вот только все более-менее удобные шорткаты заняты, а разбираться, как назначить шорткат для указанной области - мне лично влом, у меня есть "нормальная" консоль. зы и это человек кричал тут: да вы оракл просто готовить не умеете, ламеры! ззы пока такие люди в стране совеЦЬкой еззь... (С) В.В.Маяковский. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:14 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
текстовый !? доберусь до дому буду искать, я все меню облазил, в database project было New Query, его же можно с Object browser правой кнопки мыши запустить - это для полных мудаков рисовать SQL запросы мышой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:23 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:37 |
|
||
|
MS SQL & Oracle 10 g
|
|||
|---|---|---|---|
|
#18+
locky Solution Explorer\Queries правой - Add new item\SQL Script. есть там и Database Query - оно таки да, визуальное. надеюсь ты про это ? и там add new item позволит запускать t-sql скрипты ?? ЗЫ мне интересно это только у меня не хватает нтуиции искать запуск t-sql скриптов в sql query дизайнере в разделе add new item правда я признатся еще не нашел даже как SQL запрос с клавы вбить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2006, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33778104&tid=1553556]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 188ms |
| total: | 333ms |

| 0 / 0 |
