MS SQL SERVER 2005 数据库大数据量访问(隔离级别设置、并发、性能)问题【加分至600,这个区只能发100】

shoushii 2008-05-16 03:52:30
第一次接触数据库性能问题,问题较菜,大家顺便拿分。

当前系统中在短时间内会有400个以上的公司登录系统并进行操作。
每个公司有2-20个人不等。
同时对多个数据库表进行增加、删除、修改,查询操作。
在固定的时刻,客户/服务器本身会开始对数据库操作,短时间出现峰值。


前提:
目前不考虑分布式
服务器配置当作优良
SQL SERVER 2005
.NET FRAMEWORK 2.0
3层开发模式

要求:
解决更新丢失
访问速度缓慢
操作缓慢
问题:
我考虑降低隔离级别,但没找到哪里进行设置。
提高服务器性能,使用APP与DATA SERVER分离的方式。
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。

有待高手提供建议,方法,恳请赐教,十分感谢。
...全文
1357 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyu112 2010-01-10
  • 打赏
  • 举报
回复
遇到同样的问题,关注
shiov3535 2009-06-19
  • 打赏
  • 举报
回复
顶呀顶
烈火焚身 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wzy_love_sly 的回复:]
关注.
[/Quote]
dawugui 2008-05-19
  • 打赏
  • 举报
回复
第一次接触数据库性能问题,问题较菜,大家顺便拿分。

当前系统中在短时间内会有400个以上的公司登录系统并进行操作。
每个公司有2-20个人不等。
同时对多个数据库表进行增加、删除、修改,查询操作。
-----------------------------------------------------

从这个需求来看,不是一个第一次接触数据库的能做的.
flairsky 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 shoushii 的帖子:]
第一次接触数据库性能问题,问题较菜,大家顺便拿分。

当前系统中在短时间内会有400个以上的公司登录系统并进行操作。
每个公司有2-20个人不等。
同时对多个数据库表进行增加、删除、修改,查询操作。
在固定的时刻,客户/服务器本身会开始对数据库操作,短时间出现峰值。

前提:
目前不考虑分布式
服务器配置当作优良
SQL SERVER 2005
.NET FRAMEWORK 2.0
3层开发模式

要求:
解决更…
[/Quote]

400个以上的公司登录系统并进行操作。
每个公司有2-20个人不等

看字面意思至少会有超过1000个并行查询,如此之多的并行,至少要做到查询负载均衡!
由于大数据量查询,索引至关重要,但索引在大数据量增删改的情况下会拖累整体性能,如何解决查询同时增删改的平衡暂无好方法。

要求:
解决更新丢失 --很有可能是并行机制出错,可采用2005的server broker 技术
访问速度缓慢 --并行量太大,I/O成为瓶颈
操作缓慢 --CPU资源不够
问题:
我考虑降低隔离级别,但没找到哪里进行设置。 --可行
提高服务器性能,使用APP与DATA SERVER分离的方式。 --可行
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 --如果单表数据量不大,没有必要

总体感觉:分布式还是一次性解决问题的根本方法,当然难度会比较高。但查询分布式一定是要做的,这个通过2005订阅可实现。采用1写多读的服务群,读服务器设置nolock,设置readonly

sxlfybb 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 perfectaction 的回复:]
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。

------------------------

不是磁盘阵列就不用试了,越分越慢。

如是磁盘阵列,可以分,但前提是你有多块cpu
[/Quote]
昵称被占用了 2008-05-19
  • 打赏
  • 举报
回复
关于优化,应该由简而烦、由浅而深
所以我想首先应该考虑一般的优化方法,
楼主需要提供以下信息:
1、中间层程序的优化情况
2、索引是否进行过优化
3、并行的情况,是否有一些数据量大或者访问特别频繁或者访问速度特别慢的瓶颈表

关于楼主的问题
我考虑降低隔离级别,但没找到哪里进行设置。
降低隔离级别的方法往往是不可取的,除非你的系统只进行查询操作,否则,产生数据不一致是更可怕的后果

提高服务器性能,使用APP与DATA SERVER分离的方式。
有条件当然分开

使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。
表分区技术当然需要硬件配合

srgcc 2008-05-19
  • 打赏
  • 举报
回复
zhi chi "ranzj"
正宗老冉 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 shoushii 的帖子:]
1 解决更新丢失
2 访问速度缓慢
3 操作缓慢
[/Quote]

(1)关键要依赖于优良的应用程序代码;
(2)妥善设置数据库缓存
(3)配置服务器,最大化利用现有资源(多CPU/多核、内存、15000rpm硬盘/合理的RAID方案),。
律己修心 2008-05-19
  • 打赏
  • 举报
回复
关注
帮顶
接分
等高手
shoushii 2008-05-19
  • 打赏
  • 举报
回复
加分了,请大家帮忙。
utpcb 2008-05-19
  • 打赏
  • 举报
回复
up
问题生 2008-05-19
  • 打赏
  • 举报
回复
我也有可能遇到类似的问题。关注一下!
hery2002 2008-05-17
  • 打赏
  • 举报
回复
优化 SQL Server CPU 性能
http://technet.microsoft.com/zh-cn/magazine/cc137784.aspx
hery2002 2008-05-17
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 shoushii 的回复:]
引用 20 楼 perfectaction 的回复:
很负责的告诉楼主,我说的全是经验。

准备用RAID0+1做数据存储,RAID1做日志。
CPU都影响什么因素?
[/Quote]
CPU影响数据算法,并行等.
shoushii 2008-05-16
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 perfectaction 的回复:]
很负责的告诉楼主,我说的全是经验。
[/Quote]
准备用RAID0+1做数据存储,RAID1做日志。
CPU都影响什么因素?
nzperfect 2008-05-16
  • 打赏
  • 举报
回复
很负责的告诉楼主,我说的全是经验。
shoushii 2008-05-16
  • 打赏
  • 举报
回复
请各位版主前来帮忙呀。
hery2002 2008-05-16
  • 打赏
  • 举报
回复
可以将分区映射到文件组,每个分区访问一个不同的物理磁盘驱动器,以便提高 I/O 性能。当 SQL Server 针对 I/O 操作执行数据排序时,它会首先按分区对数据进行排序。在此方案下,SQL Server 每次访问一个驱动器,这样可能会降低性能。为了提高性能,更好的解决方案是通过设置 RAID 将多个磁盘中的分区数据文件条带化。这样一来,尽管 SQL Server 仍按分区对数据进行排序,但它可以同时访问每个分区的所有驱动器。不管所有分区是在一个文件组中还是在多个文件组中,都可以设计此配置。有关 SQL Server 如何处理不同的 RAID 级别的详细信息,请参阅 RAID 级别和 SQL Server。
hery2002 2008-05-16
  • 打赏
  • 举报
回复
关于分区,关键要看你的数据是否满足分区条件,怎样分区,要看你的数据分布,
尽量让数据分布均匀,
关于分区表:
已分区表和已分区索引概念
http://technet.microsoft.com/zh-cn/library/ms190787.aspx
设计分区以提高查询性能
http://technet.microsoft.com/zh-cn/library/ms177411.aspx

加载更多回复(16)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧