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

Откуда:
Сообщений: 4
Скажите пожалуйста как можно узнать сколько записей или строк есть в файле базы данных?
У меня есть таблица она секционированная .Мне надо знать сколько записей в физических файлах.Если такая ли возможность?
8 июл 13, 16:42    [14537246]     Ответить | Цитировать Сообщить модератору
 Re: сколько записей в физических файлах  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
orit benyamin,


SELECT	OBJECT_SCHEMA_NAME(p.object_id) AS TableName
	  , OBJECT_NAME(p.object_id) AS TableName
	  , p.partition_number AS PartID
	  , fg.name AS FileGroupName
	  , df.physical_name
	  , p.rows
FROM	sys.partitions p
		INNER JOIN sys.allocation_units au ON au.container_id = p.hobt_id
		INNER JOIN sys.filegroups fg ON fg.data_space_id = au.data_space_id
		INNER JOIN sys.database_files df ON au.data_space_id = df.data_space_id 
8 июл 13, 16:52    [14537348]     Ответить | Цитировать Сообщить модератору
 Re: сколько записей в физических файлах  [new]
Гость333
Member

Откуда:
Сообщений: 3683
orit benyamin,

Можно узнать распределение записей по файловым группам:
select ds.name as filegroup_name, sum(p.rows) as rows
from sys.partitions p
     inner join sys.allocation_units au on au.container_id = p.hobt_id
     inner join sys.data_spaces ds on ds.data_space_id = au.data_space_id
where p.object_id = object_id('Схема.Таблица')
      and p.index_id in (0, 1)
group by ds.name


Информацию о распределении записей по физическим файлам MSSQL не предоставляет. По крайней мере, SQL-запросом это не получить :)
8 июл 13, 16:53    [14537359]     Ответить | Цитировать Сообщить модератору
 Re: сколько записей в физических файлах  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Александр Волок (def1983)
orit benyamin,


SELECT	OBJECT_SCHEMA_NAME(p.object_id) AS TableName
	  , OBJECT_NAME(p.object_id) AS TableName
	  , p.partition_number AS PartID
	  , fg.name AS FileGroupName
	  , df.physical_name
	  , p.rows
FROM	sys.partitions p
		INNER JOIN sys.allocation_units au ON au.container_id = p.hobt_id
		INNER JOIN sys.filegroups fg ON fg.data_space_id = au.data_space_id
		INNER JOIN sys.database_files df ON au.data_space_id = df.data_space_id 

У вас же записи замножатся, если в какую-либо ФГ входит более одного файла.
8 июл 13, 16:57    [14537387]     Ответить | Цитировать Сообщить модератору
 Re: сколько записей в физических файлах  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Гость333
У вас же записи замножатся, если в какую-либо ФГ входит более одного файла.

Да, все верно, имя файла приведено для сценария когда одна секция = один файл.

В случае же когда несколько файлов, на одну секцию, выявить достоверно, сколько строк в каком-то определенном файле, насколько мне известно, нет возможности..
8 июл 13, 17:13    [14537513]     Ответить | Цитировать Сообщить модератору
 Re: сколько записей в физических файлах  [new]
Col
Member

Откуда: Торонто
Сообщений: 188
orit benyamin
Скажите пожалуйста как можно узнать сколько записей или строк есть в файле базы данных?
У меня есть таблица она секционированная .Мне надо знать сколько записей в физических файлах.Если такая ли возможность?

Невозможно контролировать файлы, но можно контролировать группы.
Пример Б по этой ссылке поможет:
http://msdn.microsoft.com/en-us/library/ms188071.aspx
Ну а для ленивых:
В SSMS правой кнопкой на табличке которую надо проанализировать, Storage-> Manage Compression
Нажимаем один раз на "Next" и получаем искомую информацию.
8 июл 13, 23:52    [14538856]     Ответить | Цитировать Сообщить модератору
 Re: сколько записей в физических файлах  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Col
Нажимаем один раз на "Next" и получаем искомую информацию.

а если надо запрос -то перед нажатием кнопок -запускаем профайлер
9 июл 13, 10:56    [14539804]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить