Chapter 1- SQL Server 2008 Overview

1. DataBase Engine

SQL Server 2008中最主要的组件就是DataBase Engine. 它是一个Windows Service,用于以relational format 存储、处理数据,如XML, or spatial data (新的)

1)可靠的存储

由2个条件决定:① 硬件 ② 事务日志

①硬件:preferable to maintain the data on RAID arrays

// RAID: 多个物理硬盘组成的一个逻辑硬盘,数据可以存在不同的硬盘,增加安全性。如果一个硬盘上的数据损坏了,只要修复这一个即可

在SQL Server中,一行行的数据存在页里,每个页是8kb大小。每8个页组成一个区,因此:

8KB → 1 page → 8 pages → 1 Extent

②事务日志

事务日志不会记录“所有的”数据库更改,二进制的大型对象,如image & text,就不会产生日志

2)快速的数据访问

由2个因素决定:①索引 ② 读取内存中的数据

第②点解释:

类似Citect的IOServer → 当页请求数据时,如果cache里面有,就直接把cache的值给它;若cache中没有,再直接读硬盘的值,并且把值存到cache里

如果cache满了,最新的页会顶掉最早的页

如果被顶掉的页中有还未被写入的更改,那么他们再被顶掉前,会先把更改写入硬盘。如果没有这类未被写入的更改,就直接丢弃

3)数据一致性

如何保证数据的一致性呢?主要的理念是:在某一时刻,只允许有一个客户端更改数据,并且阻止其他客户端在这个过程中读取此数据 → 通过事务锁来实现

4)安全

5)数据完整性


2. SQL Server 2008 Administration & Management Tools

1)SSMS  

2)Configuration Manage

3) SQL Server Agent

它是一个Scheduling Tool,用于定义、执行scheduled 脚本。同时,它也处理自动报警,比如数据库run out of space

它也是一个Windows Service, 和database Engine在同一台机器上

如果要共同管理多个装有SQL的机器,就可以使用Agent进行管理。它可以通过使用MultiServer Administration,将任务分发给多个服务器。这样一来,虽然任务是在多台计算机上执行的,但是可以实现只在一台计算机上进行管理。假设你有20台server,你只要检查completion status of the job就可以,不用登录到各台计算机

另外,Agent还可以转发事件。任何记录在Windows系统日志中的事件,都可以转发给某一台计算机

4)SQL Server Profiler

它是一个GUI的接口,获取所有发至数据库引擎,或从数据引擎发出的queries,有点像network sniffer. 它不仅可以获取并存储所有发给服务器的T-sql语句,还可以获得如死锁、登陆、错误等的sql server事件。用Profiler可以完成的任务有:

① 当客户端为第三方软件时,可以直接获取到发给server的语句

② 可以playback, 用于性能测试

③ 可以查出导致Access Violation的原因

④ 可以显示出每一条语句的performance data

⑤ 对于复杂的存储过程,可以判断出哪一部分导致的性能问题

⑥ 可以实时检查服务器活动


3. Replication

用于在多个数据库中同步数据,可以把一个实例的数据传到另一个,也可以把sql server的数据,通过ODBC或OLEDB接口,复制到Oracle,Access或其他数据库

Replication不会在目标数据库重建表格或索引,而是复制表格或索引中的更改

主要有三种Replication的方式:

① SnapShot

server会在某一时间点上,对表格中的数据take a picture。一般来说,如果这个操作是scheduled的,那么目标数据会在自动在每次更新的时后被替换

② Transactional

通过读取源数据库的事务日志,并把更改应用于目标数据库。对于每一个插入、更新和删除操作,服务器都会将一个操作的副本发给下游的数据库。

Transaction Replication不能保证在任意的时间内,两个数据库是一模一样的,但是,它可以确保源数据库的每一个更改,最后都会应用在目标数据库中。如果你想保证两个数据库时时刻刻要一模一样,那可以使用Distributed Transactions 或者 镜像

③ Merge

有的时候,需要对复制后的表格进行一些更改,或者merger these changes together at some later date, 这个时候就需要merger replication。

它允许数据被订阅者修改,并且可以在later time同步。这种同步可以是几秒,也可以是一天之后

Merger应用的地方:Sales Database  有一个主数据库,这个主数据库的数据可以复制到多个sales laptops. 销售人员可以增加记录,也可以修正错误,当他们回到办公室后,可以把这些更改同步给central database. 这些更改被提交后,laptop也会得到最近一次更新的最新数据

Immediata Updating: 允许目标数据库立即更改源数据库的内容


4. 数据库镜像

镜像保证了一个数据库有两份copy, 而且这两份copy 放在不同的sql server实例中,或者不同位置的不同计算机中。类似主备冗余的概念,一个是主数据库,一个是备数据库。这两个数据库时时刻刻都在同步,时刻保持一致。

这是如何实现的呢?通过把每一条事务日志的记录,按顺序发送给备的数据库。与Replication woks at the logic level 不同,镜像works at the level of physical log record


5. Full-Text Search

在搜索大的文本字段时,很有用。

例如:

select * from resume where decription like '%guru%'

此条语句执行的会很慢。原因:数据库引擎can't index text colums,所以整张表格都会被遍历。

但是,如下语句,采用了full-text 查询,就很好:

select * from resume where contains (description ,'furu')

或者:

select * from resume where contains (*,'sql and ''ability to work'' ')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值