SQL Server 2008 Resource Governor
一、问题引出:
当某一台SQL Server实例上创建有多个数据库的时候,如果某一个数据库过度占有系统资源,往往会导致其它数据库性能受到严重影响,甚至大大降低整个数据库的性能。
这种情况下,如果有一种技术或者方法可以限制数据库资源的占有量,给与一个峰值,从而给与其它的数据库足够的资源。那么这个问题就可以有效地避免。
在SQL Server 2008中就存在这种技术叫:Resource Governor
Resource Governor是 SQL Server 2008 中的一项新技术,使用该技术可以通过指定传入请求的资源消耗限制管理 SQL Server 工作负荷和资源。
二、Resource Governor中三个重要的组件
Resource Pool。 当安装 SQL Server 2008 时,会创建两个资源池(内部资源池和默认资源池)。Resource Governor还支持用户定义的资源池。
Workload Group。 当安装 SQL Server 2008 时,会创建两个工作负荷组(内部工作负荷组和默认工作负荷组)并将其映射到对应的资源池。Resource Governor还支持用户定义的工作负荷组。
Classifier Function。 存在用于对传入请求进行分类并将它们路由到工作负荷组的内部规则。Resource Governor还支持用于实现分类规则的分类器用户定义的函数。
三、Resource Governor组件之间的关系
四、Resource Governor实践
1. Checking
--step 1:Resource governor confg checking
USE Master
GO
SET NOCOUNT ON
SELECT *
from sys.dm_resource_governor_configuration WITH (NOLOCK)
/*--------==Result===========
classifier_function_id is_reconfiguration_pending
---------------------- --------------------------
0 0
*/
2. Resource Pools Creating
--step2:Resource pools creating
USE master;
GO
CREATE RESOURCE POOL ResPl_Test1
WITH(MAX_CPU_PERCENT = 10);
GO
CREATE RESOURCE POOL ResPl_Test2
WITH(MAX_CPU_PERCENT = 90);
GO
--Checking
USE Master
GO
SET NOCOUNT ON
SELECT name,max_cpu_percent
from sys.dm_resource_governor_resource_pools WITH (NOLOCK)
/*------
相关文档:
连接查询
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的 ......
固定服务器角色
sysadmin 可以在 SQL Server 中执行任何活动。
serveradmin 可以设置服务器范围的配置选项,关闭服务器。
setupadmin 可以管理链接服务器和启动过程。
securityadmin 可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。
processadmin 可以管理在 SQL Server 中运行的进程。
......
use RetalDB--表示在数据库RetalDB中进行的操作
go
if exists (select * from sysobjects where name='tb_user')
drop table tb_user
go
--创建客户表tb_user
create table tb_user
(
user_id int primary key,--指定为主键时,此列默认为非空,指定过多个限制条件时不用“'”隔开
us ......
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varch ......
新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop table [表 ......