使用presto查询SQL Server,但它的性能非常低

使用presto查询SQL Server,但它的性能非常低,sql,presto,Sql,Presto,我已将presto配置为连接我的Sql Server DB仅配置一个连接器来测试分布式查询,下面是我的sqlserver.properties文件的内容: 因为presto不能使用TOP,所以我改为使用limit,但我发现presto获取了整个表数据,然后获取了前几条记录,即使在使用分页sql时也是如此。这两个sql语句是: 从sqlserver.dbo.fc中选择*u jcxx limit 10 所以我希望如果有人能帮我解决这个困惑,我会真诚地感谢 在我监视sql server的sql命令之后

我已将presto配置为连接我的Sql Server DB仅配置一个连接器来测试分布式查询,下面是我的sqlserver.properties文件的内容:

因为presto不能使用TOP,所以我改为使用limit,但我发现presto获取了整个表数据,然后获取了前几条记录,即使在使用分页sql时也是如此。这两个sql语句是:

从sqlserver.dbo.fc中选择*u jcxx limit 10

所以我希望如果有人能帮我解决这个困惑,我会真诚地感谢

在我监视sql server的sql命令之后,我发现它扫描了整个表的行,而我只想返回前10行或在内存中获取分页数据,因此它们的速度非常慢,因为这两个命令都花了2分钟,在这个表中只花了大约300000条记录

我希望我的应用程序可以使用presto来提高性能,因为数据越来越大。但这个结果让我失望

我认为在这种情况下,索引也不会起作用……我稍后会证实这一点


有人能帮我吗?多谢各位

如果您的发动机太受限,无法排放TOP,那么它就太受限了。每个数据库系统都有表达这种习惯用法的方法,所以任何严肃的方法都需要考虑到这一点。正如您所发现的,使用ROW_NUMBER进行分页通常不是前几页之外的解决方案,因为这无法有效优化。如果引擎支持调用数据,则可以考虑编写存储过程来获取数据。否则,请按照索引键>=X和索引键cat catalog/sqlserver.properties connector.name=sqlserver connection- url=jdbc:sqlserver://172.3.207.68:1433;databaseName=Rich_FinanceCheckSystem; connection-user=sunbiqi connection-password=****
select * from(
    select row_number() over (order by id asc) rownum,* 
        from sqlserver.dbo.fc _jcxx
) as T 
where T.rownum between 10000 and 10100;