二、
优化数据库设计
1
、简单介绍:包括逻辑设计和物理设计。逻辑设计是是数据库设计的重要环节。
2
、设计表和字段:
表是构成数据库的基本单元,字段是组成数据库表的元素,基于此,这是优化数据库的基础。
列命名技巧实例:
新建三张表:
create table customer01 (cu1_id int, cu1_name varchar(20), cu1_adress varchar(20), cu1_sex varchar(20))
insert into customer01 values (1, 'a', 'aaa', 'aaa')
insert into customer01 values (2, 'b', 'bbb', 'bbb')
create table customer02 (cu2_id int, cu2_name varchar(20), cu2_adress varchar(20), cu2_sex varchar(20))
insert into customer02 values (1, 'a', '111', 'ccc')
insert into customer02 values (2, 'b', 'cad', 'wre')
create table linking (so_id int, so_name varchar(20), so_adress varchar(20), so_sex varchar(20))
insert into linking values (1, 'a', '222', 'hhhh')
insert into linking values (44, 'a', '666', '888')
select * from customer01, customer02, linking where cu1_name = 'a' and cu1_id = cu2_id and cu2_id = so_id and cu1_adress = 'aaa'
create table customer001 (id int, name varchar(20), adress varchar(20), sex varchar(20))
insert into customer001 values (1, 'a', 'aaa', 'aaa')
insert into customer001 values (2, 'b', 'bbb', 'bbb')
create table customer002 (id int, name varchar(20), adress varchar(20), sex varchar(20))
insert into customer002 values (1, 'a', '111', 'ccc')
insert into customer002 values (2, 'b', 'cad', 'wre')
create table linking0 (id int, name varchar(20), adress varchar(20), sex varchar(20))
insert into linking0 values (1, 'a', '222', 'hhhh')
insert into linking0 values (44, 'a', '666', '888')
select * from customer001, customer002, linking0 where customer001.name = 'a' and customer001.id = customer002.id and customer002.id = linking0.id and customer001.adress = 'aaa'
三、设计联合数据库服务器【未完,出错】
1.
分区:将一个大表拆分成更小的表单,只访问局部数据库。
use master
IF EXISTS (SELECT NAME FROM sys.databases WHERE name = N'Partition_DB')
DROP DATABASE [Partition_DB]
CREATE DATABASE [Partition_DB]
ON PRIMARY
(NAME='Partition_DB Primary FG',
FILENAME=
'C:\Partition_DB Primary FG.mdf',
SIZE=5,
MAXSIZE=500,
FILEGROWTH=1 ),
FILEGROUP [Data Partition DB FG1]
(NAME = 'Partition_DB FG1',
FILENAME ='C:\Partition_DB FG1.ndf',
SIZE=5,
MAXSIZE=500,
FILEGROWTH=1 ),
FILEGROUP [Data Partition DB FG2]
(NAME = 'Partition_DB FG2',
FILENAME ='C:\Partition_DB FG2.ndf',
SIZE=5,
MAXSIZE=500,
FILEGROWTH=1 ),
FILEGROUP [Data Partition DB FG3]
(NAME = 'Partition_DB FG3',
FILENAME ='C:\Partition_DB FG3.ndf',
SIZE=5,
MAXSIZE=500,
FILEGROWTH=1 )
四、
查询优化:
1、
减少网络流量和优化网络设置:
在优化服务器时最好是监视客户端应用程序,与服务器之间的流量,客户端和SQL Server之间的网络往返通常是数据库应用程序性能较差的首要原因。
实例:设置不回复行影响信息,不与网络发生信息交流,减少网络流量。
【注:sql server在每个语句运行完之后都会发送一条消息,详细说明每个语句影响的行数,如果不需要的话,可
以禁用这些回复设置】
2、
优化网络设置
较慢的网络会影响SQL Server发送和接收数据,可通过配置网络选项提高性能:
3、
优化名字解析:
Windows
服务器名字解析的本质是将IP地址映射为计算机名称。通过LMHOSTSA配置可以将项目预先添加到服务器缓存,我们可以使用SQL SERVER CONFIGURATION MANAGER执行类似功能:
实例1:添加别名【前几天讲的sql server运程问数据库就是很好的例子】
4、
SQL Server
内存配置:
解析:SQL Server根据需要获取和释放内存,内存的配置影响服务器的性能:
最小服务器内存:确保SQL Server至少以最小的分配内存量启
动。
最大服务器内存:可以在SQL Server启动时指定它的最大内存量,此选项不推荐,它不能合理的释放和配置各种操作的内存使用量。
最大工作线程:指定用户连接到SQL Server提供支持的线程数
创建索引占用的内存:配置创建索引时排序操作所使用的内存量,不常创建索引且在非峰值时间创建索引时,可提高索引的性能。
每次查询占用的最小内存:可用于指定分配给查询执行的最小内存量。
5.使用IO配置选项:服务器配置中的内部还原Recovery Internal
选项可用于配置IO的使用并影响服务器性能。
Recovery interval
是一个高级选项:
将SP_CONFIGURE 系统内存设置为1,系统恢复时间设置为3,用户可通过改变这些选项来提高系统性能:
6、
使用数据库引擎优化顾问
可以并不精通数据库的结构精髓就可以很快的提升数据库性能,在对工作负荷分析后,它会给出建议添加、删除或修改数据库中的物理设计结构,以降低工作负荷
启动:【sql server 2005】/【性能工具】/ 【数据库引擎优化顾问】
开始查询:选中运行的一段代码进行分析―右键单击选则“油腻感优化引擎过问进行分析”―连接到数据库引擎
本文出自 “uphold” 博客,转载请与作者联系!