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.
Windows Azure SQL Database offers dynamic management views (DMVs) that return server state information that can be used to monitor the health of a server instance, diagnose problems, and tune performance.
For a list of available views refer to System Views (Windows Azure SQL Database).
For examples of how to find CPU-intensive queries, long-running queries and I/O intensive queries refer to Tuning SQL Azure Databases, Part 2.
For additional troubleshooting tips refer to Troubleshoot and Optimize Queries with Windows Azure SQL Database, Improving Your I/O Performance, Gaining Performance Insight into Windows Azure SQL Database, Troubleshooting Windows Azure SQL Database, Finding Blocking Queries in SQL Azure, March Madness – SQL Azure – sys.dm_exec_query_stats.
Also consider profiling at the application level, for instance as explained in Profiling Database Activity in the Entity Framework and Query Profiling SQL Azure when using Entity Framework or Linq-to-SQL.
For advanced monitoring consider deploying Windows Azure SQL Database Management Pack for System Center 2012.