Joins in #sql #database may cause may issues. See our new infographics explaining what can go wrong.
About us
Reimagining how companies build their data infrastructure.
- Website
-
http://www.metisdata.io
External link for Metis
- Industry
- Software Development
- Company size
- 11-50 employees
- Headquarters
- Tel-Aviv
- Type
- Privately Held
- Founded
- 2021
Locations
-
Primary
Tel-Aviv, IL
Employees at Metis
Updates
-
๐๐ผ๐ฎ๐ฑ ๐๐ฒ๐๐๐ ๐ฎ๐ฟ๐ฒ ๐ท๐๐๐ ๐ฎ ๐๐ฎ๐๐๐ฒ ๐ผ๐ณ ๐๐ถ๐บ๐ฒ. Letโs read on to understand why. Load tests should answer if the service and the database are fast enough to be deployed to production. They do this job well but have so many drawbacks that ultimately they should be avoided. ๐๐ถ๐ฟ๐๐, ๐น๐ผ๐ฎ๐ฑ ๐๐ฒ๐๐๐ ๐๐ฎ๐ธ๐ฒ ๐๐ผ๐ผ ๐บ๐๐ฐ๐ต ๐๐ถ๐บ๐ฒ. We must run thousands of transactions for many hours to get meaningful results. We need to fill caches, drives, and networks, and keep it running for a long time. ๐ฆ๐ฒ๐ฐ๐ผ๐ป๐ฑ, ๐น๐ผ๐ฎ๐ฑ ๐๐ฒ๐๐๐ ๐ฎ๐ฟ๐ฒ ๐ต๐ฎ๐ฟ๐ฑ ๐๐ผ ๐๐ฟ๐ถ๐๐ฒ. We canโt simply shoot the service with random requests. We need to mimic the production data distribution and send the data that just makes sense. ๐ง๐ต๐ถ๐ฟ๐ฑ, ๐น๐ผ๐ฎ๐ฑ ๐๐ฒ๐๐๐ ๐ฎ๐ฟ๐ฒ ๐ฑ๐ถ๐ณ๐ณ๐ถ๐ฐ๐๐น๐ ๐๐ผ ๐บ๐ฎ๐ถ๐ป๐๐ฎ๐ถ๐ป. Data changes over time, services change their implementation, and we need to keep our testing data up to date. ๐๐ผ๐๐ฟ๐๐ต, ๐๐ฒ ๐ป๐ฒ๐ฒ๐ฑ ๐๐ผ ๐ฑ๐ฒ๐ฎ๐น ๐๐ถ๐๐ต ๐๐๐ฃ๐ฅ, ๐๐๐ฃ๐, ๐ฎ๐ป๐ฑ ๐๐ถ๐บ๐ถ๐น๐ฎ๐ฟ. We canโt simply take the production data and play it in the non-production environment. ๐๐ถ๐ณ๐๐ต, ๐ฟ๐ฎ๐ป๐ฑ๐ผ๐บ๐ป๐ฒ๐๐. It is perfectly fine to get a different response for the same request due to randomness, variations in the timestamps, random identifiers, and other stuff. ๐ฆ๐ถ๐ ๐๐ต, ๐๐ต๐ฒ๐ ๐ต๐ฎ๐ฝ๐ฝ๐ฒ๐ป ๐ณ๐ฎ๐ฟ ๐๐ผ๐ผ ๐น๐ฎ๐๐ฒ. Even if we find issues with load tests, itโs already after we wrote the code, reviewed it, merged it, and deployed it to some environments. ๐๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ผ๐ณ ๐ฟ๐๐ป๐ป๐ถ๐ป๐ด ๐น๐ผ๐ฎ๐ฑ ๐๐ฒ๐๐๐, ๐๐ฒ ๐๐ต๐ผ๐๐น๐ฑ ๐ฐ๐ฎ๐๐ฐ๐ต ๐๐ต๐ฒ ๐ถ๐๐๐๐ฒ๐ ๐ฒ๐ฎ๐ฟ๐น๐. We can employ many observability techniques to see things behind the scenes and identify the issues in the developersโ environments. We can use telemetry to capture the queries sent to the database. Once we have these queries, we can project them onto the production database and extract the execution plans. This way we can immediately tell if the queries are going to be fast enough when deployed to production. In the same way, we can verify schemas and configurations. We can check if the indexes are configured properly, and if the queries use indexes well. We can utilize observability to do much more. Since we know what is being changed and in what way, we can easily pinpoint issues in production and correlate them to the actual code changes. This way, we can submit automated pull requests that fix the issues. We can tune configurations, schemas, indexes, extensions, and much more.
-
Let's see 4 hot trends in database observability that modern companies are chasing now. We spent years improving our monitoring solutions. We can now capture metrics nearly automatically thanks to solutions like OpenTelemetry. We can visualize data points easily with open-source solutions. Finally, we can easily measure our applications' performance. And yet, there are still more things to incorporate to make observability even better. ๐ง๐ต๐ฒ ๐ณ๐ถ๐ฟ๐๐ ๐๐ต๐ถ๐ป๐ด ๐ถ๐ ๐ถ๐ป๐๐ฒ๐ด๐ฟ๐ฎ๐๐ถ๐ผ๐ป ๐๐ถ๐๐ต ๐ฑ๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐โ ๐ฒ๐ป๐๐ถ๐ฟ๐ผ๐ป๐บ๐ฒ๐ป๐๐ ๐๐ผ ๐ฐ๐ฎ๐ฝ๐๐๐ฟ๐ฒ ๐ต๐ผ๐ ๐๐ต๐ฒ ๐๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ ๐ฒ๐๐ผ๐น๐๐ฒ๐ ๐ผ๐๐ฒ๐ฟ ๐๐ถ๐บ๐ฒ. This gives us the following: - We can analyze the changes much earlier in the pipeline which shortens the feedback loop and lets developers iterate faster - We can see how individual changes affect the production database because we see every little detail - We can easily troubleshoot issues since we know exactly whatโs happening across our pipelines ๐ก๐ฒ๐ ๐, ๐บ๐ผ๐ฑ๐ฒ๐ฟ๐ป ๐ผ๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐ ๐๐ผ๐น๐๐๐ถ๐ผ๐ป๐ ๐๐ต๐ผ๐๐น๐ฑ ๐๐ฎ๐ฟ๐ป ๐๐ ๐ฎ๐ฏ๐ผ๐๐ ๐ถ๐๐๐๐ฒ๐ ๐ฏ๐ฒ๐ณ๐ผ๐ฟ๐ฒ ๐๐ต๐ฒ๐ ๐ฎ๐ฐ๐๐๐ฎ๐น๐น๐ ๐ฎ๐ฝ๐ฝ๐ฒ๐ฎ๐ฟ. This brings many benefits: - Developers feel confident that their changes are safe to be deployed and any issues are identified early - Managers can plan their roadmaps reliably as their teams avoid expensive rollbacks and lengthy troubleshooting - All DORA metrics are improved as teams move faster and face fewer errors - Velocity increases and MTTR goes down ๐ง๐ต๐ถ๐ฟ๐ฑ, ๐ด๐ผ๐ผ๐ฑ ๐ผ๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐ ๐๐๐๐๐ฒ๐บ๐ ๐ฎ๐๐ผ๐ถ๐ฑ ๐๐๐ฎ๐บ๐ฝ๐ถ๐ป๐ด ๐๐๐ฒ๐ฟ๐ ๐๐ถ๐๐ต ๐ฑ๐ฎ๐๐ฎ ๐ฝ๐ผ๐ถ๐ป๐๐. This unblocks the teams in the following ways: - They need lower working knowledge about the system to keep it in shape and maintain it over time - Junior developers can be as effective as senior developers in troubleshooting issues - Teams can work independently as they donโt need help from other teams (like DBAs) to debug the problems - They donโt need to spend time on troubleshooting and can apply the solutions immediately There is no need to slice and dice metrics anymore. World-class observability solutions are now giving guides that developers can follow mechanically to solve the issues. ๐๐ฎ๐๐ ๐ฏ๐๐ ๐ป๐ผ๐ ๐น๐ฒ๐ฎ๐๐, ๐ผ๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐ ๐๐ผ๐น๐๐๐ถ๐ผ๐ป๐ ๐ฐ๐ฎ๐ป ๐ป๐ผ๐ ๐๐ฒ๐ฟ๐ถ๐ณ๐ ๐บ๐ฎ๐ป๐ ๐ต๐๐ฝ๐ผ๐๐ต๐ฒ๐๐ฒ๐ ๐ฎ๐ป๐ฑ ๐ฝ๐ฟ๐ผ๐๐ถ๐ฑ๐ฒ ๐ฎ๐ป๐๐๐ฒ๐ฟ๐. This gives the following: - Observability tools can confirm what will work and what will not bring any improvements - Developers donโt need to try things out. They just come and immediately see which things are effective - MTTR is greatly reduced as many solutions are tested at once - Developers are sure improvement suggestions will work in their production systems and are not only theoretically valid Say goodbye to old monitoring solutions that swamp your developers with raw data points.
-
Caches in SQL are important for improving the performance and efficiency of database operations. By storing frequently accessed data in memory, caches reduce the need to retrieve information from disk, which is a slower process. See our new infographics explaining how it works. #sql #database #observability
-
๐๐ฒ๐๐ข๐ฝ๐ ๐ฒ๐ป๐ด๐ถ๐ป๐ฒ๐ฒ๐ฟ๐ ๐๐ฎ๐ป๐ ๐๐ผ ๐ฎ๐๐๐ผ๐บ๐ฎ๐๐ฒ ๐ฒ๐๐ฒ๐ฟ๐๐๐ต๐ถ๐ป๐ด. This gives them many benefits - they donโt need to do any manual steps, they donโt need to speak to other teams and can prioritize their important tasks better. ๐๐ผ๐๐ฒ๐๐ฒ๐ฟ, ๐บ๐ฎ๐ป๐ ๐ผ๐ฟ๐ด๐ฎ๐ป๐ถ๐๐ฎ๐๐ถ๐ผ๐ป๐ ๐บ๐ฎ๐ธ๐ฒ ๐ฎ๐๐๐ผ๐บ๐ฎ๐๐ถ๐ป๐ด ๐๐ต๐ถ๐ป๐ด๐ ๐ต๐ฎ๐ฟ๐ฑ๐ฒ๐ฟ. They require synchronous communication between the teams, they limit access permissions, and they scatter ownership throughout various squads. In turn, DevOps engineers donโt own their databases and struggle to move fast with automation since they need to maintain the databases manually. ๐ช๐ต๐ฎ๐ ๐ถ๐ณ ๐๐ต๐ฒ๐ ๐ฐ๐ผ๐๐น๐ฑ ๐ผ๐๐ป ๐๐ต๐ฒ๐ถ๐ฟ ๐ฑ๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ? ๐ช๐ต๐ฎ๐ ๐ถ๐ณ ๐๐ต๐ฒ๐ ๐ฑ๐ถ๐ฑ๐ปโ๐ ๐ป๐ฒ๐ฒ๐ฑ ๐๐ผ ๐๐ฝ๐ฒ๐ฎ๐ธ ๐๐ผ ๐ผ๐๐ต๐ฒ๐ฟ ๐๐ฒ๐ฎ๐บ๐? We need to bring tools that automate everything around databases. To make DevOps engineers true database owners, they need to be able to optimize all the queries that are executed in the database. They need tools that can show them whatโs going on, analyze the source code, and indicate how to optimize it to make it faster. These tools need to bring confidence and reliability. There is nothing worse than finding bugs very late in the pipeline because it requires the DevOps engineers to start the implementation process from scratch. They need solutions that can analyze if their designs are correct, if the queries are fast enough, and if the schema changes wonโt cause a data loss. The next part of the work is achieving the highest database reliability and understanding whether the database works correctly. DevOps engineers need to have live database-oriented metrics showing the status of the databases. However, just bringing the data is not enough. We canโt expect the DevOps engineers to do the hard work of connecting the dots when these things can be easily automated. We need tools that can help by reasoning about all parts of the SLDLC to explain how to make things better. Tools that can let the DevOps engineers focus on the hard parts. ๐ง๐ต๐ฒ ๐ฏ๐ถ๐ด๐ด๐ฒ๐๐ ๐๐ถ๐บ๐ฒ-๐๐ฎ๐๐๐ฒ๐ฟ๐ ๐ฎ๐ฟ๐ฒ ๐บ๐ฒ๐ฒ๐๐ถ๐ป๐ด๐ ๐ฎ๐ป๐ฑ ๐๐๐ป๐ฐ๐ต๐ฟ๐ผ๐ป๐ผ๐๐ ๐ฐ๐ผ๐บ๐บ๐๐ป๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป. DevOps engineers automate their tasks and they canโt do that when many parties are involved. They need to work independently and own all the parts of their databases. They need to have tools that can analyze database designs, query performance, and suggest improvements. These tools need to automate the reasoning and provide actionable insights instead of raw data. Metis handles all of that and lets the DevOps engineers own their databases and talk less with other teams. Use Metis and unleash the power of your DevOps teams.
-
Developers often want to own the stuff they work with. This gives them many benefits - they donโt need to speak to other teams, they can prioritize their work, and they can optimize the things they work on by introducing better tools and processes. Itโs hard for them to do their work when they arenโt the owners. Unfortunately, this is common with databases. ๐๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐ ๐ฑ๐ผ๐ปโ๐ ๐ผ๐๐ป ๐๐ต๐ฒ๐ถ๐ฟ ๐ฑ๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ ๐ฒ๐ป๐ด๐ถ๐ป๐ฒ๐ ๐ฎ๐ป๐ฑ ๐๐๐ฟ๐๐ด๐ด๐น๐ฒ ๐๐ถ๐๐ต ๐บ๐ผ๐๐ถ๐ป๐ด ๐ณ๐ฎ๐๐ ๐๐ถ๐๐ต ๐ฎ๐น๐น ๐๐ต๐ฒ ๐๐ผ๐ฟ๐ธ ๐ผ๐ป ๐๐ต๐ฒ๐ถ๐ฟ ๐ฝ๐น๐ฎ๐๐ฒ๐. What if they could own their database? What if they didnโt need to speak to other teams ๐ง๐ผ ๐บ๐ฎ๐ธ๐ฒ ๐ฑ๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐ ๐ผ๐๐ป๐ฒ๐ฟ๐, ๐๐ต๐ฒ๐ ๐ป๐ฒ๐ฒ๐ฑ ๐๐ผ ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ ๐ต๐ผ๐ ๐๐ผ ๐ผ๐ฝ๐๐ถ๐บ๐ถ๐๐ฒ ๐๐ต๐ฒ ๐พ๐๐ฒ๐ฟ๐ถ๐ฒ๐ ๐๐ต๐ฒ๐ ๐ฑ๐ฒ๐ฎ๐น ๐๐ถ๐๐ต. They need to have the tools that can let them change the code with confidence. They need solutions that can analyze if their designs are correct, if the queries are fast enough, and if the schema changes wonโt cause a data loss. This requires integration with developersโ environments, CI/CD pipelines, and all the environments developers work on. ๐๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐ ๐ป๐ฒ๐ฒ๐ฑ ๐๐ผ ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ ๐ถ๐ณ ๐๐ต๐ฒ๐ถ๐ฟ ๐ฑ๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ๐ ๐ฎ๐ฟ๐ฒ ๐๐ผ๐ฟ๐ธ๐ถ๐ป๐ด ๐ฐ๐ผ๐ฟ๐ฟ๐ฒ๐ฐ๐๐น๐. They need to have live database-oriented metrics showing the status of the databases. Just bringing the data is not enough. Tools need to reason automatically and provide answers instead of raw data. Those tools need to do all of that by connecting dots from all parts of the SLDLC to explain how to make things better, hypothesize about indexes, query rewrites, and configuration changes, and verify these ideas automatically. ๐ง๐ต๐ฒ ๐ฏ๐ถ๐ด๐ด๐ฒ๐๐ ๐๐ถ๐บ๐ฒ-๐๐ฎ๐๐๐ฒ๐ฟ๐ ๐ฎ๐ฟ๐ฒ ๐บ๐ฒ๐ฒ๐๐ถ๐ป๐ด๐ ๐ฎ๐ป๐ฑ ๐๐๐ป๐ฐ๐ต๐ฟ๐ผ๐ป๐ผ๐๐ ๐ฐ๐ผ๐บ๐บ๐๐ป๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป. Developers need to be able to work independently on all the parts of their databases. Developers can deal with the issues entirely on their own if they donโt need to talk to other teams or ask for details or metrics. They can fix everything independently. Developers can own their databases. They can solve all the issues and deploy things fast. They need to have tools that can analyze database designs, query performance, and suggest improvements. These tools need to automate the reasoning and provide actionable insights instead of raw data. Metis handles all of that and lets the developers own their databases and talk less with other teams. Use Metis and unleash the power of your developers.
-
Reliability is often misunderstood and teams miss multiple things when making sure their databases work well. They focus on improving stability metrics without building the proper processes around them. Letโs see 3 hot trends in database reliability that every team should incorporate into their organization. ๐๐ถ๐ฟ๐๐ - ๐ข๐ฏ๐๐ฒ๐ฟ๐๐ฎ๐ฏ๐ถ๐น๐ถ๐๐ ๐๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ผ๐ณ ๐ ๐ผ๐ป๐ถ๐๐ผ๐ฟ๐ถ๐ป๐ด We need to change the way how we monitor our ecosystems. To make sure our database is reliable, we need to prevent any bad changes from reaching production. We need to find the issues before they get through pipelines and fix them as early as possible. Monitoring is not enough to do that. We canโt just capture metrics from various software layers and sources in the production, and call it a day. ๐ช๐ฒ ๐ป๐ฒ๐ฒ๐ฑ ๐๐ผ ๐บ๐ผ๐๐ฒ ๐ณ๐ฟ๐ผ๐บ ๐บ๐ฒ๐ฟ๐ฒ๐น๐ ๐บ๐ผ๐ป๐ถ๐๐ผ๐ฟ๐ถ๐ป๐ด ๐๐ต๐ฒ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐๐ถ๐ผ๐ป ๐๐ผ ๐๐ฒ๐ฒ๐ถ๐ป๐ด ๐ฒ๐๐ฒ๐ฟ๐๐๐ต๐ถ๐ป๐ด ๐ถ๐ป ๐ผ๐๐ฟ ๐ฒ๐ฐ๐ผ๐๐๐๐๐ฒ๐บ. This way we can identify slow queries before they hit the database, invalid schema migrations that may take the database down, and wrong scripts that may lead to data loss. ๐ฆ๐ฒ๐ฐ๐ผ๐ป๐ฑ - ๐จ๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ๐ถ๐ป๐ด ๐๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ผ๐ณ ๐ฆ๐ฒ๐ฒ๐ถ๐ป๐ด Our current monitoring solutions are great at showing us where something happens. However, just seeing that the metrics increased is not enough when weโre deploying many times a day and we deal with many heterogeneous applications. ๐ช๐ต๐ฎ๐ ๐๐ฒ ๐ป๐ฒ๐ฒ๐ฑ ๐ถ๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ถ๐ ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ๐ถ๐ป๐ด. We need our monitoring solutions to explain what happens, why metrics change, what exactly contributes to the issues we observe, and how things are evolving. Instead of getting the alarms that metrics spiked, we should get a consistent history explaining what happened and where we are now. ๐ง๐ต๐ถ๐ฟ๐ฑ - ๐๐๐๐ผ๐บ๐ฎ๐๐ฒ๐ฑ ๐ง๐ฟ๐ผ๐๐ฏ๐น๐ฒ๐๐ต๐ผ๐ผ๐๐ถ๐ป๐ด ๐๐ป๐๐๐ฒ๐ฎ๐ฑ ๐ผ๐ณ ๐ ๐ฎ๐ป๐๐ฎ๐น ๐ช๐ผ๐ฟ๐ธ Once we get comprehensive explanations of what changed and why the system doesnโt behave as expected, we should expect the tooling to troubleshoot the issues automatically. The system can add hypothetical indexes and check the execution plans, verify the cost of different queries, and suggest improvements. We can submit pull requests to fix the code and configurations automatically. Monitoring the metrics is not enough. We need to move on to prevent the bad code changes from being deployed to production. We can get all of that automated and forget that our databases exist.
-
There are two important tasks that each developer faces when using databases - how to make queries faster and how to improve the schemas. There are many ways to tackle these problems and we need to find the balance between how much time we spend and how much we improve the performance. ๐ ๐ฎ๐ป๐ ๐๐ต๐ถ๐ป๐ด๐ ๐ฎ๐ณ๐ณ๐ฒ๐ฐ๐ ๐๐ต๐ฒ ๐ฝ๐ฒ๐ฟ๐ณ๐ผ๐ฟ๐บ๐ฎ๐ป๐ฐ๐ฒ ๐ผ๐ณ ๐๐ต๐ฒ ๐ฑ๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ. We can use CTEs that may be slower than the less readable code with duplications. We may go with many joins that can exponentially increase the number of rows we extract from the database. We may use cursors that let us achieve nearly anything but are terrible for the performance. ๐ง๐ต๐ฒ ๐ป๐ฒ๐ ๐ ๐๐ต๐ถ๐ป๐ด ๐ถ๐ ๐๐ต๐ฎ๐ ๐ถ๐ป๐ฑ๐ฒ๐ ๐ฒ๐ ๐๐ฒ ๐ต๐ฎ๐๐ฒ ๐ถ๐ป ๐ผ๐๐ฟ ๐ฑ๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ. We may go with popular B-tree-based indexes, but we may also have text-oriented indexes with trigrams or things supporting ML and vector databases. ๐ง๐ต๐ฒ๐ป ๐ฐ๐ผ๐บ๐ฒ ๐ฎ๐น๐น ๐๐ต๐ฒ ๐๐ต๐ถ๐ป๐ด๐ ๐๐ต๐ฎ๐ ๐บ๐ฎ๐ธ๐ฒ ๐๐ต๐ฒ ๐ผ๐ฝ๐๐ถ๐บ๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฒ๐ป๐ด๐ถ๐ป๐ฒ ๐ฝ๐ฟ๐ผ๐ฑ๐๐ฐ๐ฒ ๐ณ๐ฎ๐๐๐ฒ๐ฟ ๐ฝ๐น๐ฎ๐ป๐ No matter what we choose to do, we need to have tools that can help us along the way. Just like we have compilers and static code analysis protecting us from silly mistakes, we need to have tools that can analyze our queries, schemas, and configurations, and provide automated insights. ๐ง๐ต๐ฒ๐ฟ๐ฒ ๐ถ๐ ๐ท๐๐๐ ๐ผ๐ป๐ฒ ๐๐ผ๐ผ๐น ๐ผ๐๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐๐ต๐ฎ๐ ๐ฑ๐ผ๐ฒ๐ ๐ฎ๐น๐น ๐ผ๐ณ ๐๐ต๐ฎ๐ - ๐ ๐ฒ๐๐ถ๐. Metis covers all you need to make your queries faster and schemas better. You get actionable code improvements, schema analysis, index coverage, and AI-based suggestions on how to optimize your queries. Metis is the only tool that walks you through the optimization process and leads you along the way. Use it today and make your databases faster.