
正文
sqlserver表优化,sqlserver优化的几种方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何做SqlServer 数据查询优化!
一、建立索引
二、建立存储过程
三、只查询您所需要的数据,不要把所有数据都查询出来,防止数据冗余。
四、对于大量及海量数据一般还要建立分区
相关问答
Q1: SQLserver如何做数据优化
2000条都查不出来,你要检查数据库到你电脑的网络是不是通畅,同时只查一下ID这样的值,看是否会好点,如果查ID值没有什么问题,证明表太大,网络不是很快,大量数据传过来时间有点久。
对于sql server表的优化,当数据量越来越大时,最好对常用的字段建索引。查询时尽量将需要查询的列出来,而不要使用*这样将所有的都查出来。如果可能,将语句写入存储过程,也能提高执行速度。
但是,网络速度不高,再怎么搞,查大量数据,都差不多!
Q2: SQL Server数据库的高性能优化经验总结
本文主要向大家介绍的是正确优化SQL
Server数据库的经验总结,其中包括在对其进行优化的实际操作中值得大家注意的地方描述,以及对SQL语句进行优化的最基本原则,以下就是文章的主要内容描述。
优化数据库的注意事项:
1、关键字段建立索引。
2、使用存储过程,它使SQL变得更加灵活和高效。
3、备份数据库和清除垃圾数据。
4、SQL语句语法的优化。(可以用Sybase的SQL
Expert,可惜我没找到unexpired的序列号)
5、清理删除日志。
SQL语句优化的基本原则:
1、使用索引来更快地遍历表。
缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。
一般来说:
①.有大量重复值、且经常有范围查询(between,
,
,=,
=)和order
by、group
by发生的列,可考虑建立群集索引
②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引;
③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。
2、IS
NULL
与
IS
NOT
NULL
不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在where子句中使用is
null或is
not
null的语句优化器是不允许使用索引的。
3、IN和EXISTS
EXISTS要远比IN的效率高。里面关系到full
table
scan和range
scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。
4、在海量查询时尽量少用格式转换。
5、当在SQL
SERVER
2000中
如果存储过程只有一个参数,并且是OUTPUT类型的,必须在调用这个存储过程的时候给这个参数一个初始的值,否则会出现调用错误。
6、ORDER
BY和GROPU
BY
使用ORDER
BY和GROUP
BY短语,任何一种索引都有助于SELECT的性能提高。注意如果索引列里面有NULL值,Optimizer将无法优化。
7、任何对列的操作都将导致表扫描,它包括SQL
Server数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。
8、IN、OR子句常会使用工作表,使索引失效。如果不产生大量重复值,可以考虑把子句拆开。拆开的子句中应该包含索引。
9、SET
SHOWPLAN_ALL10、谨慎使用游标
在某些必须使用游标的场合,可考虑将符合条件的数据行转入临时表中,再对临时表定义游标进行操作,这样可使性能得到明显提高。
注释:所谓的优化就是WHERE子句利用了索引,不可优化即发生了表扫描或额外开销。经验显示,SQL
Server数据库性能的最大改进得益于逻辑的数据库设计、索引设计和查询设计方面。反过来说,最大的性能问题常常是由其中这些相同方面中的不足引起的。
其实SQL优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充份利用索引,减少表扫描的I/O次数,尽量避免表搜索的发生。其实SQL的性能优化是一个复杂的过程,上述这些只是在应用层次的一种体现,深入研究还会涉及SQL
Server数据库层的资源配置、网络层的流量控制以及操作系统层的总体设计。
Q3: 优化sqlserver数据库
优化Microsoft SQL Server数据库内存配置
内存是影响Microsoft SQL Server系统性能的一个重要因素,SQL Server数据库安装
时将为具有32MB物理内存的机器缺省配置16MB可用内存,16MB物理内存的机器缺省配置4MB可
用内存。应在Microsoft SQL Server数据库安装后进行内存选项(Memory)设置,最大配置值为
为了确定SQL Server系统最适宜的内存需求,可以从总的物理内存中减去Windows
NT4.0需要的内存以及其它一些内存需求后综合确定,理想的情况是给SQL Server分配尽可能
1?根据物理内存合理规划SQL Server可用内存
在大多数的生产环境中,服务器配备的物理内存是64MB~128MB,偶尔也有256MB的,
只要配置恰当是完全可以满足SQL Server的内存需求的。下表是笔者关于SQL Server内存分配
物理内存 分配给SQL Server 设置值(单位:2KB)
8MB 4MB 2048
16MB 8MB 4096
32MB 16~18MB 8192~9216
48MB 28~34MB 14336~17408
64MB 40~46MB 20480~23552
128MB 100~108MB 51200~55296
256MB 216~226MB 110592~115712
512MB 464~472MB 237568~241664
以下是SQL Server内存选项(Memory)设置方法
(1)从Microsoft SQL Server程序集中启动SQL Enterprise Manager;
(2)从Server Manager窗口中选择“Server”菜单选项;
(3)在“Server”菜单中选择“Configurations”选项;
(4)在“Server Configuration”对话框中选择”Configuration”标签,
(5)选中“Memory”项目,在“Current”栏填入新值;
(6)停止并重新启动SQLServer服务,使设置生效。
2?合理扩充虚拟内存、增大SQL Server可用内存
当SQL Server系统确实需要扩大可用内存时,应在磁盘空间充足的情况下扩充供虚拟
内存,并相应增大 SQL Server可用内存。具体做法是,系统管理员首先扩充服务器的虚拟内
存,然后再参考上表增大SQL Server可用内存,关键是要根据系统的负载情况综合决定是否扩
3?使用tempinRAM
SQL Server使用tempdb临时数据库作为一些查询连接操作时排序或创建临时表的工作
空间。将tempdb创建在RAM中可以使系统操作性能有较大提高,而且因为tempdb在每次重启动
服务器时都重建,这样即使有非正常的关闭也是较为安全的,例如停电故障。要将tempdb创建
在RAM中,可以使用sp_configure进行设置,具体用法请参阅有关资料。
由于tempdbinRAM使用的内存是由系统从内存体单独分配的,与SQL Server的内存选
项设置的可用内存池是分开的,使用tempdbin RAM将减少整个系统的可用内存,应根据SQL
Server和服务器运行情况进行配置,否则就可能适得其反,影响系统性能。另外,适当增加
tempdb数据库空间,即使不使用tempdbin RAM,也可以提高数据库的运行速度。
4?注意事项
(1)建议在生产环境中SQL Server不要设置小于32MB内存,而且数据库服务器上尽量
(2)扩充供虚拟内存、增大SQL Server可用内存,应考虑物理内存使用状况和磁盘空
(3)在可能的情况下,要为系统留有部分额外的内存,这样在服务器上打开一个服务
或添加一个进程且不改变SQL Server内存配置时,不致于使NT服务器的运行速度受到影响(变
得很慢),一般认为最小为2MB最大为20MB。
Q4: 怎样进行sql数据库的优化
1、数据库空间是个概述,在sqlserver里,使用语句 exec sp_spaceused 'TableName' 这个语句来查。
2、sp_spaceused 该存储过程在系统数据库master下。exec sp_spaceused '表名' --该表占用空间信息exec sp_spaceused ' ' 留空表示查询当前数据库占用空间信息。
3、接下来查看字段长度与已经使用的最大字段,使用如下命令。
4、最后查询整个数据库的空间大小,选中数据库,点击【右键】在下拉菜单中选择【属性】。
5、在常规里可以看到数据库【可用空间】,当发现可用空间太小的时候,就要扩大数据库空间了。







