How to view history of queries (all OR over a long period) performed on database which is hosted on Azure?
azure, azure-sql-database, database-tuning, indexing, logging
Solution
Here is a query I found useful to see the most executed queries on my Azure SQL Server database:
SELECT TOP 10 execution_count, statement_text
FROM (
SELECT QS.*,
SUBSTRING(
ST.text,
(QS.statement_start_offset/2) + 1,
((
CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset
) /2)
+ 1
) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST
) AS query_stats
WHERE statement_text LIKE 'UPDATE%'
ORDER BY execution_count DESC
Source: March Madness - SQL Azure - sys.dm_exec_query_plan | SQLRockstar | Thomas LaRock
Problem
For a database hosted on Azure, i can view the recent history of the queries performed on it. This is through the Azure portal > Database > Manage > Administration > Query Performance. Unfortunately, the history found there, only covers a small time frame (few minutes). I intend to create non-clustered indexes on my database and for that, need to get a log of the real queries run on the data on a typical day, as opposed to the past few minutes. Currently, i have to keep refreshing the page many times and record all the queries for each refresh, Even then, the log which i obtain after this arduous process, only reflects a small subset of the queries performed. Is there any option to view histories for longer periods? Thanks.