Skip to main content

Enable SQL Query Optimization

To enable the SQL Query Optimization feature, please select your installation type and follow the instructions below. SQL Query Optimization lets Releem collect query execution plans and generate query-level recommendations. After enabling it, the first recommendations can take up to one week because Releem needs enough workload data.

Existing Linux Installation

Automatic Installation

Note: If your server is already installed, you can use automatic installation, as it won't add a new server if it has the same hostname.

Run the helper mode from the installer:

RELEEM_MYSQL_ROOT_PASSWORD='[MySQL root password]' \
bash -c "$(curl -L https://releem.s3.amazonaws.com/v2/install.sh)" enable_query_optimization

This command updates /opt/releem/releem.conf, enables query optimization, and prepares the required MySQL settings.

Manual Installation

If you prefer to update the agent manually:

  1. Grant additional permissions to the releem user. The SQL Query Optimization feature requires Additional Permissions for the Releem Agent user.
  2. Add query_optimization=true setting to the /opt/releem/releem.conf.
  3. Restart Releem Agent using the following command:
    systemctl restart releem-agent
  4. Run the following command:
    /opt/releem/mysqlconfigurer.sh -p

New Linux Installation

Add this environment variable to the installation command:

RELEEM_QUERY_OPTIMIZATION=true
  1. Click "Add Server" link at Releem Customer Portal.
  2. Select the installation type.
  3. Modify the one-step installation command and the following environment variable:
    RELEEM_QUERY_OPTIMIZATION=true
  4. Run the modified installation command on your server.

Additional Database Permissions Required

The SQL Query Optimization feature requires Additional Permissions for the Releem Agent user.

Data Collection and Analysis

Once the SQL Query Optimization feature is enabled, Releem will automatically collect and save the EXPLAIN outputs of the top 100 queries and the top 100 slowest queries. This data helps in analyzing the execution plan of queries and optimizing them further.

An example of the EXPLAIN output collected by Releem is provided below:

{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "0.60"
},
"table": {
"table_name": "sale_internals_order_discount",
"access_type": "ref",
"possible_keys": [
"IX_SALE_ORDER_DSC_HASH"
],
"key": "IX_SALE_ORDER_DSC_HASH",
"used_key_parts": [
"DISCOUNT_HASH"
],
"key_length": "98",
"ref": [
"const"
],
"rows_examined_per_scan": 1,
"rows_produced_per_join": 1,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.50",
"eval_cost": "0.10",
"prefix_cost": "0.60",
"data_read_per_join": "1K"
},
"used_columns": [
"ID",
"MODULE_ID",
"DISCOUNT_ID",
"NAME",
"DISCOUNT_HASH",
"CONDITIONS",
"UNPACK",
"ACTIONS",
"APPLICATION",
"USE_COUPONS",
"SORT",
"PRIORITY",
"LAST_DISCOUNT",
"ACTIONS_DESCR"
]
}
}
}