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

Откуда:
Сообщений: 8701
invm,

нет, причем здесь намёки, я писал о вставке результата в новую таблицу. Вариант с обновлением работает приблизительно вчетверо хуже.
7 июн 21, 14:10    [22332299]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9778
Владислав Колосов,

Хотите сказать, что insert и update работают с CLR по-разному?
7 июн 21, 14:18    [22332304]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
aleks222
Member

Откуда:
Сообщений: 1416
invm
aleks222
Я и без твоих изысков представляю недостатки и достоинства вариантов.
Ну тогда бы не предлагал кластерный индекс :)


Дык оно и без кластерного, внезапно, стала хуже.
Чудесные явления виртуальной природы.
7 июн 21, 14:23    [22332312]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9778
aleks222
Дык оно и без кластерного, внезапно, стала хуже.
Не внезапно.
1. В таблицу добавился столбец
2. Времена стали браться из серверной статистики.

Возможно я где-то и накосячил, но не увидел где.
7 июн 21, 14:56    [22332339]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
declare @t table (id integer identity, txt varchar(100))

insert into @t (txt) values
('1ABCD'),
('1AC'),
('1ACE'),
('2A'),
('2AC')

select 
	txt = vals.n + left(repl.s, len(repl.s) - 2)
from @t AS t
cross apply(values(left(txt, 1), right(txt, len(txt) -1))) AS vals(n, s)
cross apply(values(convert(varchar(200), convert(varbinary(200), convert(nvarchar(100), vals.s))))) AS bin(s) 
cross apply(values(replace(bin.s collate latin1_general_bin, char(0x00), ',' + vals.n))) AS repl(s)
7 июн 21, 15:07    [22332349]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9778
Shakill, это грязный хак :)
7 июн 21, 16:15    [22332400]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8701
invm
Владислав Колосов,

Хотите сказать, что insert и update работают с CLR по-разному?


Нет, UPDATE работает медленнее в любых примерах по сравнению с INSERT приблизительно в 4 раза. Может это связано с параллельной вставкой, не проверял.
7 июн 21, 16:45    [22332424]     Ответить | Цитировать Сообщить модератору
 Re: Замена символов в строке  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
invm, но довольно быстрый и без цикла ) есть, конечно, некоторые ограничения
7 июн 21, 16:52    [22332430]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить