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

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

有一个人事数据库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毫秒

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

一个好用的分页存储过程

set @start=getdate()

exec selectbypage 'peoTest','*','A0188',20,10,0,0,'' 
set @end=getdate() 

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

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

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

 1、尽量少使用 * 号,应只查询需要的字段,能减少不必要的消耗。 
 2、多使用分页,单页数据量较少,也可以提高查询效率。先写到这里,外面这么好的天气,不去打打球,运动一下身体,真太可惜了。身体是本钱。身体是一切基础!。

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

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

浅谈sqlserver数据库优化(一)----开光篇的更多相关文章

  1. (转)运维角度浅谈MySQL数据库优化

    转自:http://lizhenliang.blog.51cto.com/7876557/1657465 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架 ...

  2. 运维角度浅谈MySQL数据库优化(转)

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

  3. 从运维角度浅谈 MySQL 数据库优化

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

  4. 运维角度浅谈MySQL数据库优化

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

  5. mysql分享一:运维角度浅谈MySQL数据库优化

    转于:http://lizhenliang.blog.51cto.com/7876557/1657465 1.数据库表设计要合理避免慢查询.低效的查询语句.没有适当建立索引.数据库堵塞(死锁)等 2. ...

  6. 【ASP.NET MVC系列】浅谈Google Chrome浏览器(操作篇)(下)

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. 浅谈mysql配置优化和sql语句优化【转】

    做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...

  8. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

  9. 浅谈Oracle数据库性能优化的目标

    Oracle性能优化保证了Oracle数据库的健壮性,为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.从数据库性能优化的场景来区分,可以将性能优化分为如 ...

随机推荐

  1. jquery.validate使用攻略

    主要分几部分 jquery.validate 基本用法 jquery.validate API说明 jquery.validate 自定义 jquery.validate 常见类型的验证代码 下载地址 ...

  2. Android语音搜索

    前言 在现有的软件的搜索框中基本上都会加上语音搜索的图标,以方便用户输入.我们xxxx的搜索框其实也可以借鉴这样的输入方式,提高用户体验.语音识别有3种方式实现①使用intent调用语音识别程序;②通 ...

  3. swift 获取UI上某点点颜色

    extension UIView { func colorOfPoint (point: CGPoint) -> UIColor { var pixel = UnsafePointer<C ...

  4. oracle db打one-off-patch 一例

    由于EBS form界面有一个报错,是一个小bug,以下打一个小patch修补一下. [以下的过程没有停库] 解压p8496830_111070_Linux-x86-64.zip cd 8496830 ...

  5. Linux下的线程

    一.线程的优点 与传统进程相比,用线程来实现相同的功能有如下优点: (1)系统资源消耗低. (2)速度快. (3)线程间的数据共享比进程间容易的多. 二.多线程编程简单实例 #include < ...

  6. mysql基本定义--数据类型

    浮点数类型与定点数类型: MySQL中使用浮点数类型和定点数类型来表示小数. 浮点数类型包括单精度浮点数(float型)和双精度浮点数(double型).定点数类型就是decimal型. OK,现在我 ...

  7. Android root 原理

    Android root 原理 0x00 关于root linux和类Unix系统的最初设计都是针对多用户的操作系统,对于用户权限的管理很非常严格的,而root用户(超级用户)就是整个系统的唯一管理员 ...

  8. java 数组初始化

    一维数组 1)   int[] a;   //声明,没有初始化 2)   int[] a=new int[5];   //初始化为默认值,int型为0 3)   int[] a={1,2,3,4,5} ...

  9. tachyon 集群安装

    tachyon的集群安装和单机安装差别不大 http://www.cnblogs.com/admln/p/tachyon-local-install.html 不同的地方 1.修改slaves时填入所 ...

  10. what is docker

    尽管之前久闻Docker的大名了,但是天资愚钝,对其到底是个啥东西一直摸不清,最近花了一段时间整理了一下,算是整理出一点头绪来. 官网的介绍是这样的: Docker is an open platfo ...