我知道使用 LIKE '%ABC%' 查询不会使用索引,并且几乎没有什么可以更改查询来改进这一点,但是如何才能更快地执行?在此阶段,我们无法将查询更改为使用全文索引。
一些背景...
我们将 Azure VM(注意:不是 Azure SQL,而是运行在 Windows 2012 上的 SQL Server)中的系统作为第二个位置以提供额外的弹性(离线备份),并使用基本服务器规范“构建”了一个 SQL 服务器。在我们的旧平台上执行 LIKE 查询需要 2 秒,而在这个 Azure 平台上需要 10 秒。
这显然是服务器规范的限制,但是我可以做些什么来改进呢?
我可以在查询运行期间看到 CPU 峰值,因此“更快”的 azure cpu 似乎会有所帮助,但要知道这些数字也可能具有误导性!
所以我的问题是,我需要专注于改进 CPU,还是不止于此?
有问题的数据库在磁盘上只有 300mb,被查询的表有大约 160k 行,所以它无论如何都不大。
请让我知道我是否在这里吠错了树,或者我是否需要先检查其他任何东西?
SQL 服务器是带有 SQL Server 2014 Std 的 Windows 2012 R2,并且是按照 Azure SQL 性能指南(即专用条带驱动器上的数据)构建的。
编辑
根据要求,这是我正在测试的查询:
SELECT Name
FROM Users
WHERE Name like '%ABC%'
Run Code Online (Sandbox Code Playgroud)
就是这样。这里没有什么复杂的,只是从一个小数据库中检索数据!
顺便说一句,此查询需要 10 秒才能运行,而添加子句 'AND Description like '%ABC%' 将时间减少到 6s?
编辑 2
好的,在评论中的反馈之后有更多信息......
我已经关注了这个页面的信息:http : //www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/
我已经运行了显示的查询,这些是显示的结果: …
performance sql-server t-sql azure-sql-database query-performance