Boa Noite Pessoal,
Mal cheguei de férias e fui escolhido para ministrar um Webcast sobre o Performance Studio. Tirando a correria de um DBA recém chegado no trabalho, foi muito proveitoso. Eu conhecia o Performance Studio um pouco de relance e alguns livros mas nunca tinha ido mais a fundo. O legal de um Webcast de um tema que você não domina tanto é que você é intimado a estudar sobre o assunto. Foi ótimo, aproveitei para pesquisar bastante material sobre esse assunto e me convenci ainda mais de que essa é uma funcionalidade do 2008 que realmente vale muito ser mais explorada.
Felizmente as avaliações do Webcast foram positivas. Fico satisfeito de ter tido uma boa aprovação e que o pessoal tenha gostado. Realmente foi proveitoso para todos. Infelizmente não foi possível responder a todas as perguntas e um ficou de fora.
“Os recursos do Performance Studio estão disponíveis em todas as versões ?”
De fato o Performance Studio não está disponível para todas as versões. O SQL Server Express não foi contemplado, mas ao contrário do que poderia parecer, as edições Standard, Workgroup e Web também possuem os recursos do Performance Studio. Os detalhes estão no link abaixo:
http://www.microsoft.com/sqlserver/2008/en/us/editions-compare.aspx
Gostaria de agradecer novamente aqueles que compareceram ao Webcast. Conforme prometido o link abaixo permite efetuar o download da apresentação:
Aqueles que desejarem executar o código para criar os itens de coleta personalizados segue o código abaixo:
USE MSDB;
BEGIN TRY;
BEGIN TRANSACTION;
DECLARE @collection_set_id INT
EXEC [dbo].[sp_syscollector_create_collection_set]
@name = N‘Coletor de Desempenho’,
@collection_mode = 1,
@description = N‘Coletar dados para mensurar o desempenho’,
@days_until_expiration = 7,
@collection_set_id = @collection_set_id OUTPUT
DECLARE @collector_type_uid UNIQUEIDENTIFIER
= (SELECT TOP 1 collector_type_uid
FROM [dbo].[syscollector_collector_types]
WHERE name = N‘Generic T-SQL Query Collector Type’)
DECLARE @CollItemID INT
EXEC [dbo].[sp_syscollector_create_collection_item]
@Name = N‘Conexões’,
@parameters = N‘<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
<Query>
<Value>
SELECT COUNT(*) As TotConexoes
FROM sys.dm_exec_connections
</Value>
<OutputTable>Conexoes</OutputTable>
</Query>
<Databases UseSystemDatabases="false" UseUserDatabases="true"/>
</ns:TSQLQueryCollector>’,
@collection_item_id = @CollItemID OUTPUT,
@frequency = 15,
@collection_set_id = @collection_set_id,
@collector_type_uid = @collector_type_uid
SET @collector_type_uid =
(SELECT TOP 1 collector_type_uid
FROM [dbo].[syscollector_collector_types]
WHERE name = N‘Generic SQL Trace Collector Type’)
EXEC [dbo].[sp_syscollector_create_collection_item]
@name = N‘Eventos do Profiler’,
@parameters = N‘<ns:SqlTraceCollector xmlns:ns="DataCollectorType" use_default="0">
<Events>
<EventType name="Stored Procedures">
<Event id="10" name="RPC:Completed" columnslist="1,3,11,35,12,28,13" />
</EventType>
<EventType name="TSQL">
<Event id="12" name="SQL:BatchCompleted" columnslist="1,3,11,35,12,28,13" />
<Event id="13" name="SQL:BatchStarting" columnslist="1,3,11,35,12,28,13" />
</EventType>
</Events>
<Filters>
<Filter columnid="35" columnname="DatabaseName"
logical_operator="AND" comparison_operator="LIKE"
value="AdventureWorks"/>
</Filters>
</ns:SqlTraceCollector>’,
@collection_item_id = @CollItemID OUTPUT,
@frequency = 15,
@collection_set_id = @collection_set_id,
@collector_type_uid = @collector_type_uid
SET @collector_type_uid =
(SELECT TOP 1 collector_type_uid
FROM [dbo].[syscollector_collector_types]
WHERE name = N‘Performance Counters Collector Type’)
EXEC [dbo].[sp_syscollector_create_collection_item]
@name = N‘Contadores do Perfmon’,
@parameters = N‘
<ns:PerformanceCountersCollector xmlns:ns="DataCollectorType">
<PerformanceCounters Objects="Processor" Counters="% Processor Time" Instances="*"/>
<PerformanceCounters Objects="$(INSTANCE):General Statistics" Counters="User Connections"/>
<PerformanceCounters Objects="$(INSTANCE):SQL Statistics" Counters="Batch Requests/sec"/>
</ns:PerformanceCountersCollector>’,
@collection_item_id = @CollItemID OUTPUT,
@frequency = 15,
@collection_set_id = @collection_set_id,
@collector_type_uid = @collector_type_uid
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(),
@ErrorSeverity INT = ERROR_SEVERITY(),
@ErrorState INT = ERROR_STATE(),
@ErrorNumber INT = ERROR_NUMBER(),
@ErrorLine INT = ERROR_LINE(),
@ErrorProcedure NVARCHAR(200) = ISNULL(ERROR_PROCEDURE(),’-‘)
RAISERROR(14684,@ErrorSeverity,1,@ErrorNumber,@ErrorSeverity,@ErrorState,
@ErrorProcedure, @ErrorLine, @ErrorMessage)
END CATCH
GO
O Webcast deverá estar disponível em alguns dias no site do MSDN, mas é possível acessá-lo através do link original. Aos interessados segue o link do Webcast
Monitorando o seu banco de dados com o Performance Studio do SQL Server 2008
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032409545&EventCategory=4&culture=pt-BR&CountryCode=BR
[ ]s,
Gustavo