浅谈sqlserver数据库优化(一)----开光篇

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 今天暂时无事,风和日丽,万里无云。游山的、玩水的、遛麻雀的都闲的不亦乐乎,也忙的不亦乐乎。在这美好的季节,依旧躲在被窝或是电脑旁绞尽脑汁敲键盘的人们,也别有一番滋味。废话少说,言归正传。赶上了一个最难就业季,总有很多不顺。

今天暂时无事,风和日丽,万里无云。游山的、玩水的、遛麻雀的都闲的不亦乐乎,也忙的不亦乐乎。在这美好的季节,依旧躲在被窝或是电脑旁绞尽脑汁敲键盘的人们,也别有一番滋味。废话少说,言归正传。

赶上了一个最难就业季,总有很多不顺。前几天面试,被问了很多mvcsqlserver索引的问题,借这个时候来温习一下这些知识。

有一个人事数据库hrmis,里面的用户表叫A01,共7000条数据。

为了测试需要把这些数据,复制到另外一个测试数据库里。语句如下:

测试数据库为:funcunweiTest

use funcunweiTest
select  *  into peoTest  from hrmis..a01

   –-输出结果(7311行受影响)

注:SELECT INTO INSERT INTO SELECT 两种表复制语句】

 

索引使用的目的,是在大数据量的情况下提高查询速度,几千条数据库是看不出来很大差别的。为了实现大数据,我们可以不断的执行下面这个语句(小心硬盘空间不足,):

  insert  into peoTest  select  *  from peoTest

 

--【在耗费了3G的空间后,用count进行统计有将近375万条数据,可以满足我们的测试了。】

查询耗时我用的办法时,查询之前先声明一个时间,查询之后再声明一个时间,然后获得时间差。 

datediff(millisecond, 开始时间, 结束时间)  --millisecond 毫秒

 

 

【测试一】查看peoTest表只查询一个列耗时情况。

declare  @start  datetime, @end  datetime
set  @start = getdate()
select A0188  from peotest
set  @end = getdate()

select datediff(millisecond,@start,@end

--查询A0188耗时为:23706毫秒 A0188代表ID

--查询A019Z列耗时:30960毫秒 A019Z代表地址

 

 

【测试二】查看peoTest表查询所有列耗时情况

declare  @start  datetime, @end  datetime
set  @start = getdate()
select  *  from peotest
set  @end = getdate()
select  datediff(millisecond, @start, @end)

--查询所有列耗时为:201350毫秒

 

 

 【测试三】利用分页存储过程,查看某一页单列及所有列耗时情况。

  一个好用的分页存储过程

 

declare  @start  datetime, @end  datetime

 set @start=getdate() 

exec selectbypage  ' peoTest ', ' * ', ' A0188 ', 20, 10, 0, 0, '' 

set  @end = getdate() 

select  datediff(millisecond, @start, @end)

  --查询的所有列第10页,每页20条数据,耗时:22346毫秒

--只查询A0188列第10页,每页20条数据,耗时:12176毫秒

 

 

从以上三个测试例子,可以得出以下结论:

 1、尽量少使用  * 号,应只查询需要的字段,能减少不必要的消耗。 

 2、多使用分页,单页数据量较少,也可以提高查询效率。 先写到这里,外面这么好的天气,不去打打球,运动一下身体,真太可惜了。身体是本钱。身体是一切基础!。

 

现在是在窗户旁坐着,还是自然风吹的爽啊。

欲知后事如何,且听下回分解。。。。

 

 

 

 

 

作者:从此启程/范存威

出处:http://www.cnblogs.com/fancunwei/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。如文章对您有用,烦请点个推荐再走,感谢! 本博客新开通打赏,鼠标移到右侧打赏浮动处,即可赏博主点零花钱,感谢您的支持!

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
13天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
13天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
18天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
27天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
28天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
41 4
|
27天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
28天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
1月前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
1月前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
36 1

热门文章

最新文章