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

Нужна ваша помощь:

Дано:
SQL2005
5 рабочих баз данных

Нужно:
1) Определить кол-во используемой оперативной памяти для каждой из баз (если конечно возможно)
2) Определить какая из баз более всего активничает по запросам
3) Определить какая из баз лидер по обороту трафика.
10 фев 12, 14:01    [12069232]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
GUEST_BEN,

1)
SELECT count(*)AS cached_pages_count, count(*)/128  'Size (Mb)'
    ,CASE database_id 
        WHEN 32767 THEN 'ResourceDb' 
        ELSE db_name(database_id) 
        END AS Database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY db_name(database_id) ,database_id
ORDER BY cached_pages_count DESC

2) активничает в плане чего?
3) трафика между чем и чем?
10 фев 12, 14:28    [12069461]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
GUEST_BEN
Guest
WarAnt
2) активничает в плане чего?
3) трафика между чем и чем?


2) в плане получения запросов (по кол-ву)
3) Мб поступающие в БД из сети, Мб уходящие из неё в сеть. Т.е. размер запихиваемых данных и выгружаемых данных (неважно какие это данные). Например, в час.
10 фев 12, 14:57    [12069750]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
GUEST_BEN
Guest
WarAnt
GUEST_BEN,

1)
SELECT count(*)AS cached_pages_count, count(*)/128  'Size (Mb)'
    ,CASE database_id 
        WHEN 32767 THEN 'ResourceDb' 
        ELSE db_name(database_id) 
        END AS Database_name
FROM sys.dm_os_buffer_descriptors
GROUP BY db_name(database_id) ,database_id
ORDER BY cached_pages_count DESC


Спасибо, большое.
Хотим и на другом серваке попробовать. SQL 2008 R2. Там этот запрос корректные данные будет показывать?
10 фев 12, 15:10    [12069942]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
GUEST_BEN
Guest
Спецы, нид хелп. Подскажите кто-нибудь.
10 фев 12, 17:24    [12071280]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
GUEST_BEN
WarAnt
2) активничает в плане чего?
3) трафика между чем и чем?


2) в плане получения запросов (по кол-ву)
3) Мб поступающие в БД из сети, Мб уходящие из неё в сеть. Т.е. размер запихиваемых данных и выгружаемых данных (неважно какие это данные). Например, в час.


ну так перфмоном померяйте скажем кол-во транзакций в секунду, для точности скажем взять среднее измеряя эту величину в течении некоторого периода времени... но подойдет ли Вам этот параметр или нужен другой - тут ни кто кроме Вас не знает

по трафику - хз... полагаю тоже перфмон сможет помочь - но ни когда цели такой не было, так что посмотрите счетчики которые там есть.
10 фев 12, 17:28    [12071319]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
Wizandr
Member

Откуда: Империя Добра
Сообщений: 37079
что лучше смотреть ?
Батчи в секунду или транзакции в секунду?
10 фев 12, 17:39    [12071418]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
Wizandr
что лучше смотреть ?
Батчи в секунду или транзакции в секунду?


ну так это Вы должны сами понять... разницу между батчами и транзакциями понимаете? что для Вашей ситуации будет показателем?
10 фев 12, 17:49    [12071499]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
GUEST_BEN
Guest
SanyL,

что такое батч ?
10 фев 12, 17:59    [12071576]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
GUEST_BEN
SanyL,

что такое батч ?


BOL
A batch is a group of one or more Transact-SQL statements sent at the same time from an application to SQL Server for execution. SQL Server compiles the statements of a batch into a single executable unit, called an execution plan. The statements in the execution plan are then executed one at a time.
10 фев 12, 18:02    [12071603]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
GUEST_BEN
WarAnt
2) активничает в плане чего?
3) трафика между чем и чем?


2) в плане получения запросов (по кол-ву)
3) Мб поступающие в БД из сети, Мб уходящие из неё в сеть. Т.е. размер запихиваемых данных и выгружаемых данных (неважно какие это данные). Например, в час.

Не совсем понятно зачем вам именно эти метрики?
По п.2, я могу запустить тысячу легких запросов, а могу один который намертво повесит сервер.
Может быть вам лучше подойдет измерять IO нагрузку в разрезе по базам?
п.3 когда данные превращаются в сетевой трафик то информации о БД уже нет, это просто один общий сетевой трафик.
11 фев 12, 00:19    [12073122]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
GUEST_BEN
Guest
Mind
Может быть вам лучше подойдет измерять IO нагрузку в разрезе по базам?

хорошее предложение, спасибо.
Подскажите плз как измерить?
заранее премного благодарен.
15 фев 12, 18:02    [12098133]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
GUEST_BEN
Mind
Может быть вам лучше подойдет измерять IO нагрузку в разрезе по базам?

хорошее предложение, спасибо.
Подскажите плз как измерить?
заранее премного благодарен.


perfmon поможет...
15 фев 12, 19:47    [12098772]     Ответить | Цитировать Сообщить модератору
 Re: БД и память на каждую из них?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
SanyL
GUEST_BEN
пропущено...

хорошее предложение, спасибо.
Подскажите плз как измерить?
заранее премного благодарен.


perfmon поможет...

Я чет не помню чтобы в perfmon были IO в разрезе по базам.
Но вот скриптом точно можно сделать. Поменяйте только период за который вы хотите собрать метрики.

DECLARE @Sample TABLE (
  DBName varchar(128) 
 ,NumberOfReads bigint
 ,NumberOfWrites bigint
 ,NumberOfBytesRead bigint
 ,NumberOfBytesWritten bigint)

INSERT INTO @Sample 
SELECT name AS 'DBName'
      ,SUM(num_of_reads) AS 'NumberOfRead'
      ,SUM(num_of_writes) AS 'NumberOfWrites' 
      ,SUM(num_of_bytes_read) AS 'NumberOfBytesRead'
      ,SUM(num_of_bytes_written) AS 'NumberOfBytesWritten'       
FROM sys.dm_io_virtual_file_stats(NULL, NULL) I
  INNER JOIN sys.databases D  
      ON I.database_id = d.database_id
GROUP BY name 

WAITFOR DELAY '00:10:00'; -- change the time period for which you want to collect IO

SELECT FirstSample.DBName
      ,(SecondSample.NumberOfReads - FirstSample.NumberOfReads) AS 'Number of Reads'
      ,(SecondSample.NumberOfWrites - FirstSample.NumberOfWrites) AS 'Number of Writes'
      ,(SecondSample.NumberOfBytesRead - FirstSample.NumberOfBytesRead)/1024./1024. AS 'Number Of MBytes Read'
      ,(SecondSample.NumberOfBytesWritten - FirstSample.NumberOfBytesWritten)/1024./1024. AS 'Number Of MBytes Written'
      
FROM 
(SELECT * FROM @Sample) FirstSample
INNER JOIN
(SELECT name AS 'DBName'
      ,SUM(num_of_reads) AS 'NumberOfReads'
      ,SUM(num_of_writes) AS 'NumberOfWrites' 
      ,SUM(num_of_bytes_read) AS 'NumberOfBytesRead'
      ,SUM(num_of_bytes_written) AS 'NumberOfBytesWritten'         
FROM sys.dm_io_virtual_file_stats(NULL, NULL) I
  INNER JOIN sys.databases D  
      ON I.database_id = d.database_id
GROUP BY name) AS SecondSample
ON FirstSample.DBName = SecondSample.DBName
ORDER BY (SecondSample.NumberOfReads - FirstSample.NumberOfReads)+(SecondSample.NumberOfWrites - FirstSample.NumberOfWrites) DESC;
16 фев 12, 00:49    [12100061]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить