Customer login     
 
 
|       Buy now!      |       Download trial      |       About ORM Profiler      |       Support      |       Home      |     

Product info

 
General
Overview
Customer benefits
Requirements
Pricing
Client
Screenshots

Features

  General
Analysis

Downloads

  Trial

Support

  Forums
Change log history
Online documentation

 

ORM Profiler analysis features overview

  ORM Profiler contains a deep, fine grained analysis system to find performance problems and other data-access related problems quickly. Below you'll find an overview of the various alerts the analysis functionality provided by ORM Profiler can detect. Many of the alerts are configurable with thresholds to meet your application's specific nature. You can enable / disable any of these alerts to focus on specific problems or avoid receiving alerts which are not of interest to you in that particular situation.
  • Number of connections / Sec (Real time analysis only) The Number of connections per second alert occurs if the number of connections opened per second is higher than a specified threshold.

  • Number of Commands / Sec (Real time analysis only) The Number of commands executed per second alert occurs if the number of commands executed per second is higher than a specified threshold.

  • Undisposed Connection alert occurs when a connection is discovered which hasn't been properly disposed. This alert can quickly show possible memory problems with respect to orphaned connections

  • Select N+1 alert occurs when per result row of a parent query (e.g. a query for a set of Customers) a query is executed for a related row or rows (e.g. a query for the Customer's Order rows). This alert shows where your code can be optimized to use prefetch paths / include / spans or other means to fetch the graph of resultsets instead of many separate queries.

  • Select N+1 Across Connections alert. This alert is similar to Select N+1, however this time the analyzer also takes into account queries which are executed over a separate connection.

  • Select Outside Transaction alert occurs when a thread T has an open transaction and executes a Select statement over another connection, which could lead to a dead lock on some databases like SQL Server.

  • Large Resultset alert occurs if a query returns more rows than the configured threshold. This alert shows you where a lot of data is read which is potentially not used.

  • Slow SQL Statement alert occurs when a SQL query takes more time than the configured threshold. The time measured is the execution time in the RDBMS system. This alert shows you which SQL queries are slow and should be optimized, either by using different SQL statements or by adding indices and other optimization techniques in the RDBMS system itself.

  • Slow Data Read alert occurs when the read action of a resultset returned by a query takes longer than the configured threshold. This alert shows you which queries return massive amounts of data, e.g. in BLOB/Image/ntext fields which might not be used by your code at that moment.

  • Parameter Size Fluctuation alert occurs when the same SQL query is executed with parameter objects which have different sizes set than the previous execution of the same SQL query. When a parameter size fluctuates in multiple occurrences of the same query, some RDBMS-es create different execution plans for the SQL query, resulting in potentially slower SQL query execution and execution plan caching degration.

  • Multi-threaded Connection Usage alert occurs when a connection object is used by multiple threads. Multi-threaded connection usage could lead to unexpected results at runtime, including exceptions and application crashes.

  • Updates in Loop alert occurs when multiple Update queries originate from the same origin. This alert can be used to detect the situation where multiple entities are read into memory, updated in memory and then persisted again, which could be replaced with a single one or a couple of Update statements executed directly onto the database.

  • Deletes in Loop alert. Similar to Updates in Loop, except this alert focuses on Delete queries.

  • Selects In Loop alert. Similar to Updates in Loop, except this alert focuses on Select queries. This alert is different from the Select N+1 alert, as there doesn't have to be a parent query for this alert.

  • Too Many SQL Statements Per Connection alert occurs when the amount of executed SQL statements over an open connection is more than the configured threshold. This alert could help find excessive database activity in areas where little activity was expected.

  • Connection Kept Open Longer Than Needed alert occurs when the period between connection Open and connection Close without any activity is longer than the configured threshold. This alert could help find situations where a database connection is kept open unnecessary, which degrades the multi-user capabilities of the used RDBMS.

  • DML Without Transaction alert occurs when the same thread executes DML statements (Insert, Update, Delete queries) over the same or multiple connections without a transaction. This alert could be used to detect queries which were expected to be executed inside a transaction but weren't.

  • Slow Transaction The Slow Transaction alert occurs if the time taken from Begin Transaction to Commit/Rollback transaction is higher than a specified threshold.

  • Connection Stayed Open Too Long The Connection Stayed Open Too Long alert occurs if the time taken from Open connection to Close connection is higher than a specified threshold.

  • Massive SQL Statement alert occurs when a SQL statement is executed which is longer (in characters) than a set threshold. This alert is mainly meant to find large statements which might have been created using slow LINQ statements so the user should look into optimizing them.
To learn more about the general features of the ORM Profiler, please visit the General Features overview for details.

 
__