When you export the Light Coverage profiler results to a database, AQTime creates a number of tables in it. The contents of most of these tables correspond to the contents of AQTime panels in which the profiling results are displayed. This topic describes the structure of the database table that contains the exported Light Coverage profiler results.
The database consists of the following tables:
LIGHT_COVERAGE_PROFILER_META_LINES
LIGHT_COVERAGE_PROFILER_META_MODULES
LIGHT_COVERAGE_PROFILER_META_ROUTINES
LIGHT_COVERAGE_PROFILER_META_SOURCE_FILES
LIGHT_COVERAGE_PROFILER_MODULES_DATA
LIGHT_COVERAGE_PROFILER_ROUTINES_DATA
The relationship between the mentioned tables is illustrated in the image below. This relationship is similar to the relationship of the data in AQTime’s Explorer, Report and Details panels that hold the Light Coverage profiler results.
The root table of the database is the INSTANCES table. It contains the list of all exported result sets and is shared by AQTime’s profilers. Each result set is identified by the INST_ID field value, which is unique among the table. All other database tables also have the INST_ID field that indicates the result set to which data of a specific table item belongs.
The Light Coverage profiler results that are displayed in the Report panel depend on the category selected in the Explorer panel - Routines, Source Files or Modules. In the database, profiling information for routines, source files and modules is stored in the separate LIGHT_COVERAGE_PROFILER_ROUTINES_DATA, LIGHT_COVERAGE_PROFILER_SOURCE_FILES_DATA and LIGHT_COVERAGE_PROFILER_MODULES_DATA tables, respectively.
The LIGHT_COVERAGE_PROFILER_ROUTINES_DATA has a child LIGHT_COVERAGE_PROFILER_LINES table, which contain coverage profiling information for the routine’s individual lines. This is the same information that is displayed in the Lines table of AQTime’s Details panel when the Report panel displays performance profiling data for routines. To identify the routine to which a specific LIGHT_COVERAGE_PROFILER_LINES table item is related, each item in this table has the PARENT_ID field that holds the identifier of the related routine.
Four more database tables have the META suffix in their names and contain meta information about the profiled elements - source files, modules, routines and lines. This data is retrieved from the application’s debug information and from the setup information of the AQTime project.
Note: | The ID and REC_ID columns of the LIGHT_COVERAGE_PROFILER_xxxx tables are not key columns. They may contain repetitive values. In queries you should use these values along with the INST_ID value (the result set identifier). |
Below is detailed information about the tables.
The INSTANCES table
This table contains a list of exported result sets. Each result set is identified by the INST_ID value.
Field Name | Description |
---|---|
CAPTION | String. The name of the result set. This is the same name that is displayed in the Explorer panel. |
COUNTER_DESCRIPTION | Not used for the Light Coverage profiler. |
COUNTER_FREQUENCY | Not used for the Light Coverage profiler. |
COUNTER_NAME | Not used for the Light Coverage profiler. |
INST_ID | Integer. The result set’s identifier. |
The LIGHT_COVERAGE_PROFILER_LINES table
This table contains coverage profiling information on the routines’s individual lines. The fields of this table correspond to the columns of the Lines table of the Details panel.
Field Name | Description |
---|---|
COL_MARK | Decimal. Specifies the number of times the line was executed during profiling. 0 means the line was not executed. |
COL_SOURCE_LINE | Integer. The line number in the source file. This field corresponds to the Source Line column of the Lines table. |
ID | Integer. The line’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Integer. The identifier of the routine to which the line belongs. This is the same value as the routine’s ID value in the LIGHT_COVERAGE_PROFILER_ROUTINES_DATA table. |
REC_ID | Integer. The line’s identifier within the routine’s lines list. |
The LIGHT_COVERAGE_PROFILER_META_LINES table
This table contains information about the source code lines that belong to specific routines.
Field Name | Description |
---|---|
COL_SOURCE_LINE | Integer. The line number in a source file. |
ID | Integer. The line’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Integer. The identifier of the routine to which the line belongs. This is the same value as the routine’s ID value in the LIGHT_COVERAGE_PROFILER_META_ROUTINES table. |
REC_ID | Integer. The line’s identifier within the routine’s lines list. |
The LIGHT_COVERAGE_PROFILER_META_MODULES table
This table contains information about the application’s modules that were profiled. The data stored in this table is used to display the module names in the Report panel (see Light Coverage Profiler - Report Panel (Modules Data Category)).
Field Name | Description |
---|---|
COL_MODULE_NAME | String. The module name. This field corresponds to the Module Name column of the Report panel. |
ID | Integer. The module’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Not used. Always contains -1. |
REC_ID | Integer. A helper field. |
The LIGHT_COVERAGE_PROFILER_META_ROUTINES table
This table contains information about routines of the profiled application. It is retrieved from the application’s debug information. The fields of this table, along with the LIGHT_COVERAGE_ROUTINES_DATA table fields, correspond to the columns of the Report panel that displays profiling results for routines.
Field Name | Description |
---|---|
COL_ADDRESS | Decimal. The routine’s address in memory. This field is used for unmanaged (native-code) routines only. For managed routines, it contains 0. This field corresponds to the Address column of the Report panel. |
COL_ANALYSIS_RESULT | String. Specifies whether the routine was instrumented or not. This field corresponds to the Analysis Result column of the Report panel. If the routine was instrumented, the field in empty. Otherwise it contains the reason why the routine was not instrumented:
|
COL_CLASS_NAME | String. The name of the class where the method is defined. This field corresponds to the Class Name column of the Report panel. |
COL_CODE_TYPE | String. The routine’s code type. This field corresponds to the Code Type column of the Report panel. It can have one of the following values:
|
COL_MODULE_NAME | String. The name of the module that contains the profiled routine. This field corresponds to the Module Name column of the Report panel. |
COL_NAMESPACE | String. The namespace of the method’s class (this field is used for managed routines only). This field corresponds to the Namespace column of the Report panel. |
COL_PROFILELINES | Integer. Specifies whether the routine was profiled on the line level or the routine level (see About Profiling Levels). This field contains 0 if the routine was profiled on the routine level. Otherwise, if the routine was profiled on the line level, this field contains -1. This value is not displayed in the Report panel. |
COL_ROUTINE_NAME | String. The routine name. This field corresponds to the Routine Name column of the Report panel. |
COL_SOURCE_FILE | String. The name of the source file that contains the routine implementation. This field corresponds to the Source File column of the Report panel. |
COL_SOURCE_LINE | Integer. The source file’s line number where the routine implementation begins. This field corresponds to the Source Line column of the Report panel. |
COL_SYMBOL_MONIKER | String. The routine’s moniker. This value is not displayed in the Report panel. |
COL_TOKEN | Integer. The routine’s CLR token. This field is used for managed routines only. For unmanaged (native-code) routines, it contains 0. This value is not displayed in the Report panel. |
COL_UNIT_NAME | String. The Name of the linkage unit that holds the routine. This field is used for unmanaged (native-code) routines only. For managed routines, this field is empty. This value is not displayed in the Report panel. |
ID | Integer. The routines’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Not used. Always contains -1. |
REC_ID | Integer. A helper field. |
The LIGHT_COVERAGE_PROFILER_META_SOURCE_FILES table
This table contains information about source files of the profiled application. The COL_FILE_NAME field of this table stores the file names, which are displayed in the Report panel when the Source Files category is selected in the Explorer panel.
Field Name | Description |
---|---|
COL_FILE_NAME | String. The source file name. This field corresponds to the File Name column of the Report panel. |
COL_SYMBOL_MONIKER | String. The source file’s moniker. This value is not displayed in the Report panel. |
ID | Integer. The source file’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Not used. Always contains -1. |
REC_ID | Integer. A helper field. |
The LIGHT_COVERAGE_PROFILER_MODULES_DATA table
This table contains coverage profiling results for each module of your application. The data stored in this table is used to display the Light Coverage profiler results for the application’s modules in the Report panel
Field Name | Description |
---|---|
COL____COVERED | Floating-point. The percentage of covered lines against the total number of lines in the routines that belong to the module. This field corresponds to the % Covered column of the Report panel. |
COL_CALCULATED | Not used. Always contains -1. |
COL_MARK | Decimal. Specifies whether the module’s code was executed during profiling (1) or not (0). |
COL_MODULE_NAME | String. The name of the module that contains the profiled routine. This field corresponds to the Module Name column of the Report panel. |
COL_SKIP_COUNT | Not used. Always contains 0. |
ID | Integer. The module’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Not used. Always contains -1. |
REC_ID | Integer. A helper field. |
The LIGHT_COVERAGE_PROFILER_ROUTINES_DATA table
This table contains coverage profiling results for each routine of your application. The fields of this table, along with the fields of the LIGHT_COVERAGE_META_ROUTINES table, correspond to the Report columns when it displays profiling results for routines.
Field Name | Description |
---|---|
COL_ANALYSIS_RESULT | String. Specifies whether the routine was instrumented or not. This field corresponds to the Analysis Result column of the Report panel. If the routine was instrumented, the field in empty. Otherwise it contains the reason why the routine was not instrumented:
|
COL_CLASS_NAME | String. The name of the class where the method is defined. This field corresponds to the Class Name column of the Report panel. |
COL_CODE_TYPE | String. The routine’s code type. This field corresponds to the Code Type column of the Report panel. It can have one of the following values:
|
COL_MARK | Decimal. Specifies the number of times the routine was executed during profiling. 0 means the routine was not executed. |
COL_MODULE_NAME | String. The name of the module that contains the profiled routine. This field corresponds to the Module Name column of the Report panel. |
COL_SKIP_COUNT | Not used. Always contains 0. |
COL_SOURCE_FILE | String. The name of the source file that contains the routine implementation. This field corresponds to the Source File column of the Report panel. |
COL_SOURCE_LINE | Decimal. The source file’s line number where the routine implementation begins. This field corresponds to the Source Line column of the Report panel. |
ID | Integer. The module’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Not used. Always contains -1. |
REC_ID | Integer. A helper field. |
The LIGHT_COVERAGE_PROFILER_SOURCE_FILES_DATA table
This table contains coverage profiling results for each source file of your application. The fields of this table correspond to the Report panel columns displaying the Light Coverage profiler results when the Source Files category is selected in the Explorer panel.
Field Name | Description |
---|---|
COL____COVERED | Floating-point. The percentage of covered lines against the total number of lines in the routines that belong to the source file. This field corresponds to the % Covered column of the Report panel. |
COL_CALCULATED | Not used. Always contains -1. |
COL_FILE_NAME | String. The source file name. This field corresponds to the File Name column of the Report panel. |
COL_HIT_COUNT | Decimal. A helper field. |
COL_SKIP_COUNT | Not used. Always contains 0. |
ID | Integer. The source file’s identifier within the result set. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
PARENT_ID | Not used. Always contains -1. |
REC_ID | Integer. A helper field. |
The RELATIONS table
This table contains the information about parent-child relationships between the database tables holding the Light Coverage profiler results.
Field Name | Description |
---|---|
COL_CHILD_TABLE | String. The name of a child table. |
COL_PARENT_TABLE | String. The name of a parent table. The NULL value means that the table specified by the COL_CHILD_TABLE is a top-level table. |
ID | Integer. The identifier of a specific relation within the RELATIONS table. |
INST_ID | Integer. The identifier of the result set. This is the same value as the result set’s INST_ID value in the INSTANCES table. |
See Also
Exporting Profiling Results to Database
Light Coverage Profiler - Overview
Light Coverage Profiler - Report Panel
Light Coverage Profiler - Details Panel