浅谈sqlserver数据库优化(一)----开光篇
今天暂时无事,风和日丽,万里无云。游山的、玩水的、遛麻雀的都闲的不亦乐乎,也忙的不亦乐乎。在这美好的季节,依旧躲在被窝或是电脑旁绞尽脑汁敲键盘的人们,也别有一番滋味。废话少说,言归正传。
赶上了一个最难就业季,总有很多不顺。前几天面试,被问了很多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毫秒
【测试三】利用分页存储过程,查看某一页单列及所有列耗时情况。
set @start=getdate()
exec selectbypage 'peoTest','*','A0188',20,10,0,0,''set @end=getdate()--查询的所有列第10页,每页20条数据,耗时:22346毫秒
--只查询A0188列第10页,每页20条数据,耗时:12176毫秒
从以上三个测试例子,可以得出以下结论:
1、尽量少使用 * 号,应只查询需要的字段,能减少不必要的消耗。2、多使用分页,单页数据量较少,也可以提高查询效率。先写到这里,外面这么好的天气,不去打打球,运动一下身体,真太可惜了。身体是本钱。身体是一切基础!。现在是在窗户旁坐着,还是自然风吹的爽啊。
欲知后事如何,且听下回分解。。。。
浅谈sqlserver数据库优化(一)----开光篇的更多相关文章
- (转)运维角度浅谈MySQL数据库优化
转自:http://lizhenliang.blog.51cto.com/7876557/1657465 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架 ...
- 运维角度浅谈MySQL数据库优化(转)
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
- 从运维角度浅谈 MySQL 数据库优化
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
- 运维角度浅谈MySQL数据库优化
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
- mysql分享一:运维角度浅谈MySQL数据库优化
转于:http://lizhenliang.blog.51cto.com/7876557/1657465 1.数据库表设计要合理避免慢查询.低效的查询语句.没有适当建立索引.数据库堵塞(死锁)等 2. ...
- 【ASP.NET MVC系列】浅谈Google Chrome浏览器(操作篇)(下)
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 浅谈mysql配置优化和sql语句优化【转】
做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...
- 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...
- 浅谈Oracle数据库性能优化的目标
Oracle性能优化保证了Oracle数据库的健壮性,为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.从数据库性能优化的场景来区分,可以将性能优化分为如 ...
随机推荐
- grunt入门之grunt watch的使用
watch几乎是grunt必不可少的应用,一旦配置好watch,保存文件后将立即执行命令 安装方式如下: npm install grunt-contrib-watch --save-dev 安装好以 ...
- HDU1028 Ignatius and the Princess III 【母函数模板题】
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 我的javascript学习之路(一)对象之基础
做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么 ...
- Html游戏开发-画图
1. 画矩形和写字 var canvas = document.getElementById('canvas'), context = canvas.getContext('2d'); context ...
- 课本[Teb]软件设计
中文名:课本 英文名:Textbook 简称:Teb 一个专注于分享校内课件的软件. 一个课件的整合平台. 发布平台:web>android>ios; 主要功能:预览课件(暂定),搜索课件 ...
- 丢失全部控制文件,noresetlogs重建控制文件,alter database open
測试2: (1)一致性的全备 SQL> shutdown immediate; $ cp -rf $ORACLE_BASE/oradata/boss/*.dbf /oradata/bossbak ...
- Sqlserver事务发布实现数据同步
事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的.这 里以sqlserver2008的事务发布功能为例,对发 ...
- ios开发——实用技术篇Swift篇&照片选择
照片选择 // MARK: - 选择照片 /*----- 选择照片 ------*/ @IBAction func addImageButtonClick() { let actionSheet = ...
- vxworks 实时操作系统
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统.Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Mi ...
- Robot Framework简介
概述 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储. 通过测试库中实现的关键字驱动被测软件.Robot Fra ...