首页 / 知识
关于sql:“选择组中的最大值”的最佳性能查询?
2023-04-17 08:21:00

Best-performance query for “select max in group”?
我有一个简单的表注释
我正在搜索一条SQL语句,该语句将返回具有最高修订版本的每个注释:
我想出了以下解决方案:
但是对于大型数据集,这非常慢。 是否有更好的查询来完成此任务? 这是一种使用适当索引不会令人费解的速度并且不使用子选择的方法:
从此处的查询改编而成: (从谷歌搜索:通过SQL最大组) 确保您已正确设置索引。索引ID,修订会很好。 这是您查询的另一种说法。尚未检查其执行计划,但是如果您很好地设置了索引,它应该会有所帮助:
编辑添加: http://www.microsoft.com/technet/prodtechnol/sql/2005/impprfiv.mspx 再次编辑以添加信息:
我仍然会使用子查询。 使用我们的其中一个表进行了测试,该表总共有近一百万行。在两个字段FIELD2和FIELD3上都存在索引。在不到3秒的时间内,查询在我们的开发者框中返回了83953行。
分析将是我的建议。
没有子选择(或临时表):
对于大型表,我发现此解决方案可以具有更好的性能:
一种非常干净的方式来执行"最新的按ID排序x"类型查询。正确建立索引也应该很容易。
从左字段开始的想法,但是如何在表中添加一个额外的字段:
然后,当您进行更改时,在新修订版上设置标志,并在所有以前的修订版上将其删除。 您的查询将变成:
这在数据库上会容易得多,因此会更快。 |
最新内容
相关内容
linux测试性能命令?
linux测试性能命令?,系统,网络,信息,工具,状态,地址,指标,情况,分析,下行,五个Linux简单命令帮你解决系统性能问题VMSTAT命令擅长用来查询CPUlinux查询url命令?
linux查询url命令?,系统,网址,工具,数据,网站,命令,传播,软件,地址,标准,linux在命令符界面如何浏览网页linux系统下命令行访问网页是curl命令linux查询命令进程?
linux查询命令进程?,系统,名称,总量,情况,状态,进程,材料,工具,电脑,数据,怎么查看linux进程名称1、linux 下查看进程可以使用的命令:ps命令查linux里面的注释命令?
linux里面的注释命令?,地址,系统,名字,工作,命令,信息,代码,基础,情况,底部,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录查询linux内存命令?
查询linux内存命令?,系统,情况,信息,工具,电脑,状态,命令,内存,发行,总量,查看linux的cpu和内存1、要查看内存使用情况,可以使用free命令。Freelinux命令查询屏保?
linux命令查询屏保?,系统,工作,工具,信息,地址,图片,命令,目录,基础,电脑,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令linux命令注释脚本?
linux命令注释脚本?,代码,工具,名称,工作,脚本,发行,服务,环境,数据,基础,linuxshell编程方法1:sed -i s/被替换的内容/要替换成的内容/ filelinux链路查询命令?
linux链路查询命令?,系统,信息,工作,地址,命令,工具,时间,盘中,基础,名字,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令linux查询文件夹命令?
linux查询文件夹命令?,系统,软件,电脑,命令,文件,文件夹,单位,第三,档案,数据,linux文件夹的大小命令?1、最简单的查看方法可以使用ls -ll、lslinux查询线程命令?
linux查询线程命令?,系统,第一,线程,命令,进程,代码,分时,软件,选项,界面,如何在Linux中查看进程的多线程1、Linux系统查看某个进程的线程数可linux查询内核数命令?
linux查询内核数命令?,系统,第一,信息,命令,实时,软件,电脑,内核,个数,界面,如何查看linux服务器的cpu数量,内核数,和cpu线程数?1、如何查看lilinux查询ip命令?
linux查询ip命令?,地址,网络,信息,设备,系统,电脑,终端,命令,中心,技术指标,linux查询ip地址命令1、输入以下命令:ipaddrshow。每个设备的IP地