6.0
1. Relied on the built-in FineBI Direct Connection Performance Analysis plugin.
The plugin is disabled by default and needs to be enabled manually.
The plugin is updated automatically with JAR package updates.
2. Only supported performance analysis for real-time data.
6.0.16
1. Directly merge the function into the product (no longer provided by an extra plugin).
2. Supported performance analysis for both real-time data and extracted data.
3. Optimized the time consumption calculation logic of the execution phase.
6.1.6
Decomposed the resource scheduling durations that display the execution plan construction and memory calculation stages.
You may find it hard to locate the causes of the following problems even after repeated checks. These problems may even cause server crashes.
Some steps are executed slowly when you are creating a self-service dataset.
A step is slow when you are previewing a self-service dataset.
Operations are relatively slow when you are previewing a dashboard.
Operations respond slowly when you are editing a component.
FineBI provides the Performance Analysis function to help you quickly and conveniently solve performance-related problems that may happen when you are previewing or editing dashboards, and editing self-service datasets.
1. For FineBI 6.0.16 and later versions, Performance Analysis is provided by the product by default.
For FineBI 6.0.15 and earlier versions, Performance Analysis is provided by the built-in FineBI Direct Connection Performance Analysis plugin.
The plugin is disabled by default and automatically updated as the product version. To use Performance Analysis, enable this plugin.
2. The Performance Analysis function in FineBI 6.0.16 and later versions applies to both real-time data and extracted data.
For FineBI 6.0.15 and earlier versions, Performance Analysis only applies to real-time data.
Performance Analysis is available at many areas in FineBI.
Data
Performance Analysis on the data editing page of a subject in My Analysis
Component
Performance Analysis on the component editing page of a subject in My Analysis
Dashboard
Performance Analysis on the dashboard editing page of a subject in My Analysis
Performance Analysis on the dashboard preview page of a subject in My Analysis
Performance Analysis when you view a dashboard in Directory
The core performance analysis information will be displayed online after you click the Performance Analysis button. Core Info can help you preliminarily judge the causes of performance issues, as shown in the following figure.
The following table describes fields in the Core Info table.
User
FineBI user who triggers the performance analysis
Level-1 Resource
Dataset name as the level-1 resource name if the analyzed content is data
Dashboard name as the level-1 resource name if the analyzed content is a dashboard
Level-2 Resource
Analysis step name in the dataset as the level-2 resource name if the analyzed content is data
Component name in the dashboard as the level-2 resource name if the analyzed content is a dashboard
Query ID
Universally unique identifier (UUID) of each query request
Query Wait Time (ms)
Time consumed from a user's click for a query to entering the query preparation stage
Query Preparation Stage (ms)
Query execution plan analysis
If the queried content is direct-connected data, it represents the SQL statement generation stage.
If the queried content is extracted data, it represents the stage where the extract engine generates the query description.
Query Execution Time (ms)
Direct-connected database execution time if the queried content is direct-connected data
Extraction engine calculation time if the queried content is extracted data
Data Transfer Time (ms)
Time spent on returning query results to FineBI
Such time is 0 for a direct connection engine.
Memory Calculation Time (ms)
Time spent on calculating all FineBI codes
Example: tree engine pagination calculation time and secondary calculation time
Frontend Render Time (ms)
Sum of the time spent on frontend JS calculation, rendering, and display after the backend calculation is completed
Total Query Time (ms)
Total time from a user's click for a query to the frontend loading completion
Query Start Time
Time when a user triggers performance analysis, accurate to seconds
To confirm the cause of a performance issue and get corrective methods, you can check the details of the corresponding query.
1. View details of each query request online: Click a value of Query ID to view the performance details of this query.
2. Export details of all query requests for this object: Click Export Details to export the detail table to the local device.
3. The following table lists the fields in the exported Core Info table.
Component Type
1: group table
2: cross table
3. detail table
4: chart
5: self-service dataset
6: filter component
7: text component
Universally unique identifier (UUID)of each query request
Execution Stage
1. Wait Start Stage
Stage of queuing due to browser restrictions
2. Execution Plan Construction
Execution Plan Construction: Stage where the FineBI engine constructs the query after receiving a query request
Resource Schedule_Execution Plan Construction: Time consumed in resource scheduling at this stage
3. SQL Generation, Optimization, and Execution
SQL Generation and Optimization: Stage where the corresponding query is converted into SQL statements and then optimized
Data Connection Creation: Stage where a connection with the database needs to be established before execution
SQL Execution: Stage where the database query is executed
4. Data Transfer (BI Server-User Browser)
Stage where the results returned by the database are transferred to the BI server
5. Memory Calculation
Memory Calculation: Time spent on calculation by the direct connection engine
Memory Calculation During Resource Schedule: Resource scheduling time at this stage
6. Waiting to End
Stage where the first component to come out must wait for the last one to come out, which is available if all components in a dashboard are packed into one request
7. Frontend Render
Data Transfer (BI Server-User Browser): Stage where the BI server transfers data to the user's browser
Frontend Render
Fragment ID
Multiple requests may exist during one queryFor example, data connection creation, SQL execution, and data transfer may be split into multiple requests, requiring separate analyses for each.
Time Consumption (ms)
Time consumed for the stage that has a recorded time
Fragment Content
Name of the data connection established at the data connection creation stage
If the SQL statement executed at the SQL execution stage exceeds 30,000 characters, the exported Excel file will contain two sheets, where one contains the details and the other lists the SQL statement exceeding 30,000 characters.
If there is an inserted temporary table, identifiers like excel insert cost xxx | select * ... will appear in front of the SQL statement.
Number of Returned Result Set Rows
Number of rows in the returned result set at the stages of data transfer, memory calculation, and frontend render
Number of Returned Result Set Columns
Number of columns in the returned result set at the stages of data transfer, memory calculation, and frontend render
Execution Engine Type
Extracted Data
Direct-Connected Data
Start Time
Time when the Execution Stage starts
End Time
Time when the Execution Stage ends
Exception Info
Error message if an error occurs at a certain stage, which can be printed
Query Request Summary
Total duration of all execution stages during this query
Start and end time of this query
Total
Total duration of all execution stages during all queries
Start and end time of all queries
1. If non-super admin users discover template issues, they can click the Performance Feedback button to inform the admin, as shown in the following figure.
2. After receiving the feedback message, the super admin can urge the corresponding personnel to optimize the dashboard/dataset based on the feedback.
You can view the following table for the matching and calculation logic of each time (in the core information) and execution stage (in the details).
Query Wait Time
Wait Start Stage
Definition:
Time consumed from a user's click for a query to entering the query preparation stage, which exists when the query is queued due to browser restrictions
Generally, if requests sent by six browsers are not returned, the requests sent by seventh and subsequent browsers will be blocked.
Calculation Logic:
For 6.0.16 and later versions: [(Time point at which a request is returned - Time point at which a request is sent) - Time point of backend query]
For 6.0.15 and earlier versions: Service StartTime (BI server time) in the response returned by the request - Start time of the query request (user's browser time) (The time difference may be negative due to possible time zone/time inconsistency between the browser and server.)
Troubleshooting:
1. Excessive number of concurrent queries
2. Exceeding browser concurrency limits
Query Preparation Stage
Execution Plan Construction
Stage where the FineBI direct connection engine constructs the query after receiving a query request Stage where the self-service dataset has ETLFlow generated
Process where Widget has BICriteria or HyperCriteria generated
Process where ETLContext has ETLFlow generated
Complex dataset/template/component
SQL Generation and Optimization
The stage where the query is converted into SQL statements and then optimized.
Time of SQL generation and optimization
/
Data Connection Creation
Stage where a connection with the database needs to be established before SQL execution
Time when the database connection is established in the database source engine (DataBaseSouceEngine)
Query Execution Time
SQL Execution
Time when the database executes the query or the TCERID execution time
Since the execution time includes the time of the temporary table, the SQL execution time may be longer than that is shown in the log.
Time when the database executes the query in the database source engine (DataBaseSouceEngine)
1. Database performance issue
2. SQL statement to be optimized
Data Transfer Time
Data Transfer (Database-BI)
Time spent on returning database query results to the FineBI server
Duration of transferring the query result set from the database to the FineBI server + Duration of data compression/data model generation
It is normal for this time value to be 0 if the above two parts are unavailable.
1. Check the server network if the duration of transferring the database query result set to the FineBI server is too long.
2. Optimize the analysis logic if the data model construction takes too long.
Memory Calculation Time
Memory Calculation
Time spent on calculation by the direct connection engine and on calculation of all FineBI codes
The memory calculation time is 0 for self-service datasets. For dashboards, it includes the time spent on the following processes.
Grouping time: postGroup time
Sorting calculation time: tree sort
Page calculation time: groupPage procedure time
Sorting-based calculation time: treeSortGist
Tree filter calculation time: groupTreeFilter
Tree construction time: treeMaker time
Optimize the analysis logic if the result set returned by the query is too large.
Frontend Render Time
Data Transfer (BI Server-User Browser)
Time spent by the BI server on transferring data to the user's browser
Time point at which the backend ends - Time point when the frontend receives data
Time point at which the component is finally rendered - Time point when the frontend
Excessive number of rows on each page
Total Query Time
Time when a user triggers performance analysis
The Export Details button is gray out and details cannot be exported.
Cause: Details cannot be exported when the query is being executed.
Solution: You can export the details after the query is finished.
The value of Query Wait Time is negative.
Cause:
For 6.0.15 and earlier versions: Query Wait Time = Service StartTime (BI server time) in the response returned by the request - Start time of the query request (user's browser time)
The time difference may be negative due to the millisecond-level difference caused by the possible time zone/time inconsistency between the browser and server.
Solution: Update the project to 6.0.16 or later versions and optimize the logic of Query Wait Time.
The value of Query Execution Time is 0.
Cause: The query hits the cache and retrieves no data from the database.
Solution: Modify the cache strategy of each table, and then perform performance analysis.
The query execution time does not match the time in the backend log.
The dataset is created using a temporary table. The execution time of the temporary table will be calculated during performance analysis, which is not calculated in the backend log, so the two are inconsistent.
Solution: It is normal, requiring no solution.
The total query time is not equal to the sum of time spent on each query.
A component may trigger multiple SQL statements, while these SQL statements may not be executed in sequence.
Query execution time = Sum of the time for executing all SQL statements
Query execution time in the total query time = Time period from the start of executing the first SQL statement to the end of executing the last SQL statement
The two are not equal, so the total query time may be shorter than the sum of time spent on each query.
Solution: None
In the detailed information of a single query, there are multiple SQL Generation and Optimization stages.
A component may trigger multiple SQL statements.
For operations such as deduplication, median calculation, and fixed calculation, multiple SQL statements need to be sent because the total value of the parent node needs to be calculated.
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy