如何提高SQL Server大数据条件下的查询速度?

那天我花了很多时间调试成绩单,用户抱怨每次打开都要等半天。
打开 SQL Profiler 看看,哦,他们都在查询 tempdb。
查看索引优化日志,发现索引统计信息已经快一年没有更新了。
等等,我查看了大表的分区视图,发现数据居然是按月分割成子表的。
SQL Server 数据库维护计划向导已打开,但它似乎只运行一次。
之前在RAID5 上修复了临时表碎片问题,但最近我注意到一些查询在排序时仍然卡住。
突然我意识到存储过程实际上可以重新优化并增强JOIN之前的TOP子句?或者说分布式视图真的解决了跨数据库JOIN问题吗?

sqlserver30万条记录 数据编辑很卡

说到这里:2 02 2 年我有一个客户。
他们在某个城市有一个大型项目,需要处理 3 00,000 条记录。
因此,当数据处理完成时,它似乎挂起。
我当时很困惑,不知道哪里出了问题。

首先我们来说说硬件资源。
经过检查,CPU占用率很高,内存也快耗尽了。
我让他们先关掉一些后台程序,这样就释放了一些内存,但问题还没有解决。
然后我又查了一下,发现硬盘的读写速度慢得像蜗牛,所以他们用的是传统的机械硬盘。
哎呀,这不行。
我建议换成SSD。
改了之后,速度立刻就提升了。

然后我再次查看数据库设计,发现他们表上的索引被搞乱了。
于是我帮他们优化,对常用的字段添加了索引。
此外,还更改了表结构,删除了不必要的字段并理顺了连接。

然后我也检查了他们的SQL查询语句,发现有些地方写起来比较复杂,就帮他们简化了一下。
可以使用 JOIN 的地方不要使用子查询。
此外,事务处理也进行了优化,以减少等待锁。

最后,我还调整了数据库的缓存设置和并发设置,使其服务器能够更好地处理这些操作。

结果,优化后,3 0万条数据的处理速度得到了提升,不再有任何延迟。
但说实话,这个过程我很忙。