Our risk mitigation assessment tool can help. By analyzing your database traffic, we quickly identify and prioritize incorrect, invalid and slow-performing queries in your new database upgrade. We also detect deprecated SQL syntax, new reserved words, and offer advice on queries with version-specific configurations that should be reviewed. By addressing these critical issues, you can upgrade with higher confidence.
Upgrade Your Production Database with Confidence
Key Features:
- Supports MySQL, MariaDB, Percona Server, and PostgreSQL databases operating on-premise, self-hosted, or managed on AWS/GCP.
- Runs independently from existing testing infrastructures, ideal for operations teams.
- Eliminates the need for a complex application stack or dedicated end-to-end testing environments.
- Captures 100% of data access patterns for thorough data access validation.
- Validates performance and responsiveness during different typical production workloads.
- Quickly identifies and addresses anomalies after new product releases using established baselines.
- Allows testing of various infrastructure and software configurations with a clear understanding of their overall impact.
- Ensures test environment fidelity and coverage by comparing production workloads.
Example Reporting
SQL Errors
Catch statements that produce SQL errors in the next version. Is your WordPress installation ready for MySQL 8.0?
16 Error(s)
SQL: "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC;"
Error 1055 (42000): Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'wp_blog.wp_posts.post_date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
SQL: SELECT ST_GeomFromWKB(Point(0, 0));
ERROR 3037 (22023): Invalid GIS data provided to function st_geomfromwkb.
SQL: SELECT * FROM mysql.character_sets;
ERROR 3554 (HY000) at line 70: Access to data dictionary table 'mysql.character_sets' is rejected.
SQL Deprecations
Catch all SQL syntax you may not be aware is deprecated.
112 Warning(s)
SQL: SELECT JSON_MERGE('["a"]','["b"]')
Warning (Code 1287): 'JSON_MERGE' is deprecated and will be removed in a future release. Please use JSON_MERGE_PRESERVE/JSON_MERGE_PATCH instead
SQL: "SELECT ST_GeomFromWKB(Point(0, 0));"
Warning: (3195) st_geometryfromwkb(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use st_geometryfromwkb(st_aswkb(geometry), 0) instead.
SQL: SELECT DATE('2024-01-01 10:00:00')
Warning (Code 4096): Delimiter ' ' in position 11 in datetime value '2024-01-01 10:00:00' at row 1 is superfluous and is deprecated. Please remove.
SQL: SELECT BINARY 'a' = 'A'
Warning (Code 1287): 'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead
SQL Warnings
Catch SQL statements throwing warnings that your application may not be processing as errors. These are simulated statements for demonstration purposes.
SQL: SELECT DATE('2024-02-30');
Warning (Code 1292): Incorrect datetime value: '2024-02-30'
SQL: "SELECT CAST('ABCDEFG' AS CHAR(5));"
Warning: (1292) Truncated incorrect CHAR(5) value: 'ABCDEFG'
SQL: SELECT * FROM information_schema.schemata WHERE schema_name='sys' AND catalog_name=1;
Warning (Code 1292): Truncated incorrect DOUBLE value: 'def'
SQL Notices
Review SQL statements that include specific hints for execution that may change with a new major version ugprade.
4 Notice(s)
SQL: "SELECT * FROM mysql.db USE INDEX (`User`);"
Review query for required future usage of 'USE INDEX'
SQL: "SELECT /*+ NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
Review query for required future usage of 'NO_BKA'
Cross-product SQL incompatibilies
Considering moving your product from MySQL to PostgreSQL or moving your product from MariaDB to MySQL? Verify all your statement are compatible before considering the larger project impact.
2 Error(s)
SQL: SELECT a.country_id, c.name, COUNT(*) AS cnt FROM airport a INNER JOIN location.country c USING (country_id) GROUP BY country_id, name ORDER BY 3 DESC LIMIT 10;
ERROR: pq: column reference 'name' is ambiguous.
SQL: SELECT name, iata_code, home_url, ROUND( 3959 * 2 * ASIN(SQRT(POWER(SIN((41.42008165125718- abs(latitude)) * pi()/180 / 2), 2) + COS(41.42008165125718 * pi()/180 ) * COS(abs(latitude) * pi()/180) * POWER(SIN((-73.27743188814966 - longitude) * pi()/180 / 2), 2) )),2) as distance FROM airport WHERE type like '%airport' HAVING distance < 50 ORDER BY distance;"
ERROR: function round(double precision, integer) does not exist
Ideal for MySQL 5.7 EOL Uprades
Are you stuck with the AWS RDS MySQL 5.7 EOL (*) and the additional expense of AWS Extended Support.
- Our agent deploys directly in your AWS account. You have total control over your security.
- No application queries, PII or business data leaves your AWS Account.
- Visualize critical impacts with a single panel dashboard.
(*) AWS RDS MySQL 5.7 EOL started on March 1st. AWS RDS PostgreSQL 11 EOL started on April 1st. Don't keep paying for the Extended Support.
Get a special offer for this time-critical situation. Purchase your first month subscription and get a second month FREE.
Use Cases
Risk Mitigation Upgrades
Support major and minor database upgrades and database migrations including End of Life (EOL) events.
Identify and prioritize incorrect, invalid and slow-performing queries.
New Release Validation
Validate new internal and external products data access patterns for any changes. Identify all modified SQL statements before the product release.
Identify and prioritize incorrect, invalid and slow-performing queries.
SQL Test Coverage
How robust are your unit, integration and end-to-end testing processes?
Be able to see query profiles run in production that are not run in testing.
Major Database Upgrade Use Cases
- AWS RDS MySQL 5.7 EOL upgrades to MySQL 8.0. AWS RDS Extended Support charges starting Mar 1, 2024
- AWS RDS Postgres 11 EOL upgrades. AWS RDS Extended Support charges starting Apr 1, 2024
- AWS RDS Aurora Postgres 11 EOL upgrades. AWS RDS Extended Support charges starting Apr 1, 2024
- AWS RDS Aurora MySQL 5.7 EOL upgrades to MySQL 8.0. AWS RDS Extended Suppport changes starting Nov 1, 2024
- MariaDB 10.x/11.x migrations to MySQL 8.0.
- GCP CloudSQL MySQL 5.7 EOL upgrades to MySQL 8.0.
- AWS EC2 self-hosted MySQL 5.7 EOL migrations to AWS RDS MySQL 8.0.
Our pricing plan made simple
All types of businesses can support managing your data access patterns for your internal or purchased applications.
Startup
Best option for small startup companies with one product and use a Test and Production environment setup.
- Test/Production BaseLines
- 10 Experiments
- User Accounts: 1 user
- Query Volume: < 10,000 per hour
- Data Retention: 30 days
Company
Supporting growing business applications with multiple environments and multiple testing processes.
- Multiple BaseLines
- 40 Experiments
- User Accounts: 5 users
- Query Volume: < 500,000 per hour
- Data Retention: 3 months
Enterprise
For large scale enterprise with multiple applications, use multiple environments and may have multiple data products.
- Unlimited BaseLines
- Unlimited Experiments
- User Accounts: Unlimited
- Query Volume: Unlimited
- Data Retention: 12 months