Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Оптимизация запроса / регулярки  [new]
maffey
Member

Откуда: DTS
Сообщений: 187
таблица на 120 000 работает

функция отсюда:
http://www.simple-talk.com/sql/t-sql-programming/tsql-regular-expression-workbench/


update dbo.tb
set
t1 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$1', addr, '1', '1'),
t2 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$2', addr, '1', '1'),
t3 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$3', addr, '1', '1'),
t4 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$4', addr, '1', '1'),
t5 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$5', addr, '1', '1'),
t6 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$6', addr, '1', '1'),
t7 = master.dbo.RegexReplace('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', '$7', addr, '1', '1')
WHERE (addr IS NOT NULL)
and master.dbo.RegexMatch('^([а-я\.\ №0-9-]+)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?([а-я\.\ \/№0-9-]*)?\,?(.*)?(.*)$', addr) = 1


регулярка тупо по запятой

Праймари есть.
14 дек 09, 11:41    [8062355]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса / регулярки  [new]
Glory
Member

Откуда:
Сообщений: 104760
Этот запрос полностью зависит от вашей RegexReplace и RegexMatch

Сообщение было отредактировано: 14 дек 09, 11:47
14 дек 09, 11:47    [8062400]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса / регулярки  [new]
maffey
Member

Откуда: DTS
Сообщений: 187
ну эт само собой)
там тупо компоненты VB вызываются
Подскажите менее прожорливую регулярку!
14 дек 09, 11:48    [8062419]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса / регулярки  [new]
maffey
Member

Откуда: DTS
Сообщений: 187
Типа через (.*)

в разбиваемом тексте тупо по запятой блоки текста идут
14 дек 09, 11:50    [8062437]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса / регулярки  [new]
Glory
Member

Откуда:
Сообщений: 104760
maffey
Типа через (.*)

в разбиваемом тексте тупо по запятой блоки текста идут

Запишите один раз в таблицу уже нормализованные данные и забудьте про расширенную процедуру
Потому что действительно "тупо вызывать компоненты VB" 8 раз для каждой из 120 000 записей
14 дек 09, 11:54    [8062470]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса / регулярки  [new]
aleks2
Guest
maffey
Типа через (.*)

в разбиваемом тексте тупо по запятой блоки текста идут


Ну дык и разбивать надо тупо
Запрос,преобразующий строку из ID-шников, разделенных запятыми, в таблицу
14 дек 09, 12:00    [8062528]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса / регулярки  [new]
maffey
Member

Откуда: DTS
Сообщений: 187
aleks2,

Спасибо, копаю
14 дек 09, 12:11    [8062615]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить