今天暂时无事,风和日丽,万里无云。游山的、玩水的、遛麻雀的都闲的不亦乐乎,也忙的不亦乐乎。在这美好的季节,依旧躲在被窝或是电脑旁绞尽脑汁敲键盘的人们,也别有一番滋味。废话少说,言归正传。
赶上了一个最难就业季,总有很多不顺。前几天面试,被问了很多mvc和sqlserver索引的问题,借这个时候来温习一下这些知识。
有一个人事数据库hrmis,里面的用户表叫A01,共7000条数据。
为了测试需要把这些数据,复制到另外一个测试数据库里。语句如下:
测试数据库为:funcunweiTest
use funcunweiTestselect * 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 datetimeset @start = getdate()select * from peotestset @end = getdate()select datediff(millisecond, @start, @end)--查询所有列耗时为:201350毫秒
【测试三】利用分页存储过程,查看某一页单列及所有列耗时情况。
declare @start datetime, @end datetimeset @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、多使用分页,单页数据量较少,也可以提高查询效率。 先写到这里,外面这么好的天气,不去打打球,运动一下身体,真太可惜了。身体是本钱。身体是一切基础!。
现在是在窗户旁坐着,还是自然风吹的爽啊。
欲知后事如何,且听下回分解。。。。
看官看客们,点起你的手,轻点下方推荐。。给足动力啊,后续优化系列源源不断。
送妹子图
相关推荐
浅谈SQL Server数据库查询性能的优化.pdf
浅谈SQL Server数据库应用程序的性能优化.pdf
浅谈SQL Server数据库查询性能的优化 (1).pdf
浅谈优化SQLServer数据库服务器内存.doc
浅谈优化SQL Server数据库服务器内存配置的.pdf
浅谈如何优化SQL Server数据库.pdf
浅谈SQL server查询优化.pdf
基于SQL Server数据库的性能优化浅谈.pdf
浅谈SQL Server的查询优化.pdf
从浅究SQL Server索引出发 谈浙江铁通大型数据库查询优化问题.pdf
浅谈数据库系统优化 概要:数据库系统的优化可以有效提高系统的性能,微软的SQL Server数据库的优化是一个系统工程,需要从设计开始就进入优化程序。 数据库的性能的优化成了数据处理的一个很重要环节。系统的性能...
浅谈在SQL Server2000中优化查询性能.pdf
浅谈如何优化SQL Server服务器.pdf
在可能的条件下,日志文件应该存放在一个与数据和索引所在的数据文件不同的硬盘上以分散I/O,同时还有利于数据库的灾难恢复。 2.tempdb数据库单独存放在不同磁盘上 tempdb数据库是其他所有数据库都有可能使用的...
是开源数据库,提供的接口支持多种语言连接操作 ; MySQL的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的mysql能很容易充分利用CPU...
本文为大家分享了数据库优化方案,供大家参考,具体内容如下 1. 利用表分区 分区将数据在物理上分隔开,不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。这样,当对这个表进行查询时,只需要在表分区中...
理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理。二级存储(secondary storage) 对于计算机来说,存储体系是分层级的。离CPU越近的地方...
如何查看统计信息 查看SQL Server的统计信息非常简单,使用如下指令: DBCC SHOW_STATISTICS(‘表名’,’索引名’)所得到的结果如图1所示。 图1.统计信息统计信息如何影响查询 下面我们通过一个简单的例子来...
tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享...