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

with
l0(n) as (select 1 union all select 1),
l1(n) as (select 1 from l0 t1, l0 t2),
l2(n) as (select 1 from l1 t1, l1 t2),
l3(n) as (select 1 from l2 t1, l2 t2),
l4(n) as (select 1 from l3 t1, l3 t2),
l5(n) as (select 1 from l4 t1, l4 t2),
rt(n) as (select row_number() over (order by (select 0)) from l5 t1, l5 t2)
select top(3000) n, cast(n as varchar(900)) as d
into data
from rt;
go

declare
	@res as table (n int, d varchar(900));

set statistics io on;

print ''
print 'выбор всех строк на прямую'
print ''

select n, d
from data
where n / 99 = 0;

print ''
print 'выбор всех строк и вставка в табличную переменную'
print ''

insert into @res(n, d)
select n, d
from data
where n / 99 = 0;

print ''
print 'выбор строк из табличной переменной'
print ''

select *
from @res;

set statistics io off;



+

 
выбор всех строк на прямую
 

(98 row(s) affected)
Table 'data'. Scan count 1, logical reads 10, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
 
выбор всех строк и вставка в табличную переменную
 
Table '#B7707215'. Scan count 0, logical reads 98, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'data'. Scan count 1, logical reads 10, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

(98 row(s) affected)
 
выбор строк из табличной переменной
 

(98 row(s) affected)
Table '#B7707215'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.



почему при вставке в табличную переменную так много логических чтений? можно ли как-то уменьшить? оно равно числу возвращаемых запросом строк.
18 дек 13, 11:01    [15309449]     Ответить | Цитировать Сообщить модератору
 Re: tabla variables  [new]
вцвцвцв
Guest
помогает только переписать как

select n, d
into #z
from data
where n / 99 = 0;
18 дек 13, 11:03    [15309475]     Ответить | Цитировать Сообщить модератору
 Re: tabla variables  [new]
kjjnkjnkj
Guest
пардон тоже не помогает.

в профайлере видно. чтений 75.
18 дек 13, 11:07    [15309508]     Ответить | Цитировать Сообщить модератору
 Re: tabla variables  [new]
hdidhiuwd
Guest
может кому будет интересно

http://support.microsoft.com/kb/314648
18 дек 13, 14:10    [15311282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить