关于SqlServer2005复制订阅性能的一个问题

上北软件培训工作室 2009-04-23 02:52:13
网站用ServerServer数据库,数据量挺大,总量是500万左右,每天也有近十万. A ,B ,C三个服务器, A是分发服务器,B和C是请求订阅服务器. 分发有七个表数据,使用事务性发布. 刚开始还行,最近一段时发现性能每隔几分钟就分出现"性能严重"的问题.头疼呀.

问题:
1. 我所需要的就是读写分开,A主数据库作增删改, 同时更新到B和C中去, BC用来做读的镜像. 这种情况是用事务性发布吗?还是用其它的更好??

2.如果事务性发布没有问题.现在性能严重的问题有没有好的解决办法? 是不是和数据量大有问题呢.

望高手帮帮忙,此贴高分回报呀.!
...全文
157 点赞 收藏 17
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
太谢谢了, 很谢谢能这么有耐心. 经过这几天调整, 已经顺利解决了. 你太高手了,呵呵.


真正的高手呀
回复
我觉得现Avg. Disk Queue Length是个大问题了. 上午是我们流量高的时候,
现在不是经常达到100,而是基本上全都是100,绿线在顶上是条直线了.
A服务器还有点波状,BC服务器,基本全直线100.
回复


Avg. Disk Queue Lengt正常理想值是不大于硬盘物理数*2

这里的物理数是说硬盘个数? 分区数?还是什么?
回复
A服务器:1.523437500000
B服务器:1.523559570312
C服务器:1.523437500000

这个是什么意思? 怎么A和C的是一样的??
回复
nzperfect 2009-04-24
执行下面的sql看下sql server的缓存情况,贴出来看看:
select cntr_value*1.0/(1024*1024) from master..sysperfinfo  where counter_name like '%total%memory%'
回复
我们的硬盘没有做Raid, 就是一个硬盘挂在了服务器了. 自动备份那种方式.

A服务器是CPU3.0GHZ 内存8G, B也是CPU3.0Ghz内存8G, C服务器差点是CPU 2.0Ghz 内存4G.

IO会不会和内存有关系呢.需要内存吗?

另我从一个地方看到:
磁盘-->右键属性-->硬件-->属性-->策略 这个里面有个[启用磁盘上的写入缓存]. 这个先项默认是没有选中的.
如果把这个选上会不会好些呢? 还是会有什么危险?

另外这个I/O是写/读,但现在CPU很高是不是说perfmon的绿线是因为写的问题?

太多问题了. 谢谢呀.
回复
nzperfect 2009-04-24
当内存被用来做sql server 数据缓存之后,再看io读写.
另外也需要用sql profiler 来抓些sql语句,耗时的sql语句也会造成大量的io.
回复
nzperfect 2009-04-24
[Quote=引用 9 楼 wfazhi 的回复:]
我们的硬盘没有做Raid, 就是一个硬盘挂在了服务器了. 自动备份那种方式.

A服务器是CPU3.0GHZ 内存8G, B也是CPU3.0Ghz内存8G, C服务器差点是CPU 2.0Ghz 内存4G.

IO会不会和内存有关系呢.需要内存吗?

另我从一个地方看到:
磁盘-->右键属性-->硬件-->属性-->策略  这个里面有个[启用磁盘上的写入缓存]. 这个先项默认是没有选中的.
如果把这个选上会不会好些呢? 还是会有什么危险?

另外这个I/O是写/读,但现在CPU很高是…
[/Quote]

如果是独立的数据库服务器,最好开启/PAE,最大限度的使用内存.
这样对io的压力就会减少.

综合你目前的情况,在4G内存上,需要开启/3GB/PAE.
在8G内存上开启/PAE
sql server 启动帐号要更改为管理员帐号,并且配置AWE和锁内存页.
回复
nzperfect 2009-04-24
[Quote=引用 11 楼 wfazhi 的回复:]
A服务器:1.523437500000
B服务器:1.523559570312
C服务器:1.523437500000

这个是什么意思? 怎么A和C的是一样的??
[/Quote]

说明你的sql server都没有最大限度的使用内存.
回复
nzperfect 2009-04-23
Avg. Disk Queue Lengt正常理想值是不大于硬盘物理数*2
回复
nzperfect 2009-04-23
一般可以说明硬盘这是瓶颈.
内存多大?硬盘是raid几?
回复
看到了.A服务器的Avg. Disk Queue Length经常会到100, B和C服务器好更严重些.也经常100.

这个说明什么了? 是哪些方面没做好,怎么提高呢? 谢谢啦
回复
nzperfect 2009-04-23
看windows性能计数器.
运行-->perfmon 回车.
性能计数器里有 Avg. Disk Queue Length.
回复
网络是从任务管理器-联网里看吧, IO怎么看呀.刚找了半天没找到.
回复
nzperfect 2009-04-23
io 队列呢? 网络流量呢?
回复
ABC三个服务器的压力不大.CPU 能在15%以下.一般超不过10%.
回复
nzperfect 2009-04-23
这个需要监控下ABC三个服务器的压力情况.
看看是压力造成的延时还是网络造成的.
如果压力过大,只能考虑加一台单独的分发服务器,不要源和分发都在A上.
回复
发动态
发帖子
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
社区公告
暂无公告