Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Это документировано?  [new]
любитель документации
Guest
Добрый день, коллеги!
Вот код 1
with chg_indexes(index_id, [object_id]) as
(	select top (50) percent
	  SI.index_id
	, O.[object_id]
	from 
	sys.dm_db_index_operational_stats(db_id(), null, null, null) IOS
	inner join sys.indexes SI on SI.[object_id] = IOS.[object_id] and SI.index_id = IOS.index_id
	inner join sys.objects O on O.[object_id] = SI.[object_id] and O.is_ms_shipped = 0
 	group by O.[object_id], SI.index_id
 	order by sum(IOS.leaf_insert_count + IOS.nonleaf_delete_count + 2.0*IOS.leaf_update_count)
)
, stats_info(index_id, [object_id], stats_dt) as
(
	select  index_id, [object_id],stats_date([object_id], index_id) as stats_dt
	from chg_indexes
)
select top 10 * from stats_info

Результат :
index_idobject_idstats_dt
215352011152011-04-11 19:50:04.557
17937815602011-05-24 19:42:19.120
1012535911792011-05-24 19:49:54.027
1.18402294812011-02-03 19:50:04.593
42115823316NULL


Вот код 2
with chg_indexes(index_id, [object_id]) as
(	select top (50) percent
	  SI.index_id
	, O.[object_id]
	from 
	sys.dm_db_index_operational_stats(db_id(), null, null, null) IOS
	inner join sys.indexes SI on SI.[object_id] = IOS.[object_id] and SI.index_id = IOS.index_id
	inner join sys.objects O on O.[object_id] = SI.[object_id] and O.is_ms_shipped = 0
 	group by O.[object_id], SI.index_id
 	order by sum(IOS.leaf_insert_count + IOS.nonleaf_delete_count + 2.0*IOS.leaf_update_count)
)
, stats_info(index_id, [object_id], stats_dt) as
(
	select  [object_id], index_id, stats_date([object_id], index_id) as stats_dt
	from chg_indexes
)

select top 10 * from stats_info

Результат :
index_idobject_idstats_dt
153520111522011-04-11 19:50:04.557
79378156012011-05-24 19:42:19.120
1253591179102011-05-24 19:49:54.027
184022948112011-02-03 19:50:04.593
21158233164NULL

Отличие в том, что внутри stats_info поля [object_id] и index_id изменены местами.
Почему в итоговом результате в поле index_id выводятся значения object_id?
Если это документировано - пожалуйста ткните носом (сам уже посмотрел, не нашел)

Microsoft SQL Server 2005 - 9.00.4060.00 (X64) Mar 17 2011 13:06:52 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 (Build 6001: Service Pack 1)
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
31 янв 12, 13:21    [12003136]     Ответить | Цитировать Сообщить модератору
 Re: Это документировано?  [new]
oxrenizm
Guest
ну так поменял порядок вывода столбцов, меняй и алиасы во 2ом коде:
stats_info(index_id, [object_id], stats_dt)  -> stats_info([object_id], index_id, stats_dt)
31 янв 12, 13:35    [12003382]     Ответить | Цитировать Сообщить модератору
 Re: Это документировано?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
oxrenizm
ну так поменял порядок вывода столбцов, меняй и алиасы во 2ом коде:
stats_info(index_id, [object_id], stats_dt)  -> stats_info([object_id], index_id, stats_dt)
Оригинально

любитель документации, что это за лажа в результате первого запроса?
На месте object_id - дата, а на месте даты - object_id?
И index_id - нецелое?!

Что-то доверия это всё не вызывает...

У меня всё получилось правильно.
Если учесть, что в объявлении CTE во втором запросе
имена полей перепутаны местами.
31 янв 12, 13:41    [12003486]     Ответить | Цитировать Сообщить модератору
 Re: Это документировано?  [new]
любитель документации
Guest
oxrenizm
ну так поменял порядок вывода столбцов, меняй и алиасы во 2ом коде:
stats_info(index_id, [object_id], stats_dt)  -> stats_info([object_id], index_id, stats_dt)

Вот спасибо, понял, что я в определении stats_info скосячил!
Спасибо!
31 янв 12, 13:47    [12003610]     Ответить | Цитировать Сообщить модератору
 Re: Это документировано?  [new]
любитель документации
Guest
iap
любитель документации, что это за лажа в результате первого запроса?
На месте object_id - дата, а на месте даты - object_id?
И index_id - нецелое?!

Что-то доверия это всё не вызывает...

Это я вместо запятой точку поставил при оформлении поста. Вот и съехало чуток.
iap
У меня всё получилось правильно.
Если учесть, что в объявлении CTE во втором запросе
имена полей перепутаны местами.
У меня теперь тоже
31 янв 12, 13:50    [12003659]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить