Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.06.2006, 10:58
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
Привет всем Конкретный вопрос для сравнения двух продуктов. В базе данных хранится текст. Мне нужно сделать разбивку текста по предложениям (для примера используем простейшие признаки окончания предложения - . ! ?) Поскольку в будущем разбивка на предложения будет гораздо сложнее и учитывать множество факторов (например пользователи сами смогут создавать правила на regular expressions), я отказался от написания процедуры на T-SQL и решил саму процедуру на C# или C++, а полученую откомпелированную функцию подключать к SQL 2005 как exteranal stroed procedure. Я полагаю, что такое взаимодействие TSQL и C# или C++ будет сильно напрягать SQL 2005. Насколько эффективно решение той же задачки на Oracle 10g ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 11:23
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
Про CLR Integration в 2005-ом Вы таки ни разу не слышали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 11:25
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
у оракла regular expression можно использовать в SQL, т.е. с ораклом ничего кроме обычного SQL тебе не понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 11:30
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
Yo.!!у оракла regular expression можно использовать в SQL, т.е. с ораклом ничего кроме обычного SQL тебе не понадобится. Вот я тоже об этом думаю. Плюс у него есть поддержка ООП. А иногда это удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 11:59
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Iura Я полагаю, что такое взаимодействие TSQL и C# или C++ будет сильно напрягать SQL 2005. Полезно читать документацию, хотя бы иногда. Если сделаю с использованием C# процедуры, то должно работать быстрее чем аналогичный код в Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:03
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
andsm Полезно читать документацию, хотя бы иногда. Если сделаю с использованием C# процедуры, то должно работать быстрее чем аналогичный код в Oracle. ага C# быстрее нативного SQL :) че курим ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:05
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Yo.!! andsm Полезно читать документацию, хотя бы иногда. Если сделаю с использованием C# процедуры, то должно работать быстрее чем аналогичный код в Oracle. ага C# быстрее нативного SQL :) че курим ? Тесты производительности, которые я делал для сравнения производительности C# и TSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:10
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Yo.!! wrote: > Полезно читать документацию, хотя бы иногда. Если сделаю с > использованием C# процедуры, то должно работать быстрее чем аналогичный > код в Oracle. > > ага C# быстрее нативного SQL :) че курим ? ну... если сравнивать вроде как бы нативный бинарник, скомпиленный под нужную ось, с вроде как байт-кодом, исполняемым каким-то аппаратом исполнения (sql engine), то нативный бинарник должон быть быстрее. вроде как. не знаю как насчет проц в оракле, которые вроде как можно скомпилить в те-же самые нативные бинарники.... зы как показывает практика - компилированая прога как правило быстрее, чем интерпретируемая (коряво сказал, но общий смысел вроде ясен). -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:18
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
locky ну... если сравнивать вроде как бы нативный бинарник, скомпиленный под нужную ось, с вроде как байт-кодом, исполняемым каким-то аппаратом исполнения (sql engine), то нативный бинарник должон быть быстрее. вроде как. не знаю как насчет проц в оракле, которые вроде как можно скомпилить в те-же самые нативные бинарники.... зы как показывает практика - компилированая прога как правило быстрее, чем интерпретируемая (коряво сказал, но общий смысел вроде ясен). да не в этом дело. SQL запускается в другом контексте нежели CLI машина, т.е. неважно что там, но эти переключения никак не допустят исполнится быстрее чем только SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:22
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Yo.!! locky ну... если сравнивать вроде как бы нативный бинарник, скомпиленный под нужную ось, с вроде как байт-кодом, исполняемым каким-то аппаратом исполнения (sql engine), то нативный бинарник должон быть быстрее. вроде как. не знаю как насчет проц в оракле, которые вроде как можно скомпилить в те-же самые нативные бинарники.... зы как показывает практика - компилированая прога как правило быстрее, чем интерпретируемая (коряво сказал, но общий смысел вроде ясен). да не в этом дело. SQL запускается в другом контексте нежели CLI машина, т.е. неважно что там, но эти переключения никак не допустят исполнится быстрее чем только SQL. спорное утверждение. Вы же не можете сказать, сколько "стоит" такое переключение, а также насколько сильный эффект оно окажет на работу всей программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:24
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Yo.!! wrote: > да не в этом дело. SQL запускается в другом контексте нежели CLI машина, > т.е. неважно что там, но эти переключения никак не допустят исполнится > быстрее чем только SQL. вопрос (встречный) - чо курим? Ви хотите сказать, что нечто вроде Код: plaintext 1. ой врядли.... попробуйте теорию практикой... урод эксперимент убьёт! красавицу теорию.... а ведь задача разбивки на предложения - это чистые циклы и сравнения. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:28
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
2locky я конечно понимаю твое жгучее желание поспорить, но давай сначала выясни что такое SQL ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 12:59
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
На самом деле в чем-то Yo!! прав. SQL запрос более вероятно выполнится быстрее чем код на C#. Только на эту проблему нужно смотреть несколько иначе IMHO. Давай те смотреть на на for i=1 to 100000 do; а на более серьезные вещи типа select'oв Задача поиска слона в африке Есси мы пишем ее на С# это будет Код: plaintext 1. 2. 3. 4. 5. 6. 7. Нужно разделять код на 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. Код: plaintext 1. Причем если запрос с count(*) можно оптимизоваровать, строить разные индексы партиционировать таблицы по midinit, то во втором случае, максимум чего можно достигнуть это написать на C, чтобы сократить затраты на .NET или на интерпретатор. Понятно что если случаи когда более удобно пользоватся тем или иным подходом, но всегда нужно оценивать принимаемое решение. По мне проще и будет писать многокилобайтные запросы чем городить SP. Опять же будет зависить от конкретной ситуаци. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:01
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
Поправочка Нет слона в конго идем в лимпопо, нет в лимопопо идем у уганднду, return слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:07
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Я не могу понять, в чем спор. Если необходимо все это делать в БД, её средствами, выбирая из ее таблиц, что бы там не говорили, SQL будет работать быстрее, просто по тому, что в любом случае, будет выполняться SQL запрос: данные нужно выбрать затем обработать и положить "на место". Если говорить о Oracle, то вообще-то любой SQL будет превращен в исполняемый код, а не интерпретирован, хотя на самом деле все сложнее. Если данные запрос будет повторятся постоянно и он правильно написан, то компиляция его будет произведена только один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:16
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
to nkulikov бред! что мешает выполнить SELECT слон from африка из контекста CLR процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:31
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
Yo.!!да не в этом дело. SQL запускается в другом контексте нежели CLI машина, т.е. неважно что там, но эти переключения никак не допустят исполнится быстрее чем только SQL. В SQL Server нет такой разницы между TSQL и SQL как между PL/SQL и SQL в Oracle. Я делал тесты чтобы проверить происходит ли переключение контекстов и сколько это переключение стоит. Результат - переключения контекстов отсутствует. Вызов ничего не делающей функции на C#, в цикле, 1000000 раз, происходит быстрее, примерно на 30%, чем вызов аналогичной функции на TSQL. Это означает что CLR integration сделана очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:31
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
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 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:40
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
2хламист: хламист бред! что мешает выполнить SELECT слон from африка из контекста CLR процедуры? и это будет более производительно чем вызов запроса напрямую??? Ты хотябы понял идею того что я пытался объяснить. Перед тем как говорить бред не бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:40
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:42
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:50
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
кроме того, проведя (как сейчас вспомнил) некоторые изыскания.... выяснил: имелся некий набор UDF для манипуляций с датой и строками (обрезать время, собрать дату, получить первый-последний день месяца, преобразовать '1а' в '00000001а' для использования в сортировках и т.д.). Аналоги, реализованные на C# работали быстрее, чем T-SQL UDF. Происходило это (предположительно) за счет меньших накладных расходов при вызове C# UDF по сравнению с T-SQL UDF. Вот такая странность, внятного (для меня) объяснения не видел (особо и не искал). кроме того, выделение предложений - есть некая манипуляция с уже полученными данными, БЕЗ обращения к базе данных. И по определению - будет быстрее в виде бинарной реализации. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 13:56
|
|||
|---|---|---|---|
|
|||
MS SQL & Oracle 10 g |
|||
|
#18+
Ты прав locky. Но инициатору я бы рекомендовал не С#, а с/c++ так как в этом случае будет меньше вопросов с переносом кода с одной БД на другую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 14:29
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
2locky чтоб что-то доказать лучше напишите простенькую функцию upper() на t-sql и clr и сравните на мульонной табличке, а потом сравните с нативным SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2006, 14:31
|
|||
|---|---|---|---|
MS SQL & Oracle 10 g |
|||
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=35&mobile=1&tid=1553556]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 183ms |
| total: | 336ms |

| 0 / 0 |
