第一次接触数据库性能问题,问题较菜,大家顺便拿分。 当前系统中在短时间内会有400个以上的公司登录系统并进行操作。
每个公司有2-20个人不等。
同时对多个数据库表进行增加、删除、修改,查询操作。
在固定的时刻,客户/服务器本身会开始对数据库操作,短时间出现峰值。 前提:
目前不考虑分布式
服务器配置当作优良
SQL SERVER 2005
.NET FRAMEWORK 2.0
3层开发模式 要求:
解决更新丢失
访问速度缓慢
操作缓慢
问题:
我考虑降低隔离级别,但没找到哪里进行设置。
提高服务器性能,使用APP与DATA SERVER分离的方式。
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 有待高手提供建议,方法,恳请赐教,十分感谢。
每个公司有2-20个人不等。
同时对多个数据库表进行增加、删除、修改,查询操作。
在固定的时刻,客户/服务器本身会开始对数据库操作,短时间出现峰值。 前提:
目前不考虑分布式
服务器配置当作优良
SQL SERVER 2005
.NET FRAMEWORK 2.0
3层开发模式 要求:
解决更新丢失
访问速度缓慢
操作缓慢
问题:
我考虑降低隔离级别,但没找到哪里进行设置。
提高服务器性能,使用APP与DATA SERVER分离的方式。
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 有待高手提供建议,方法,恳请赐教,十分感谢。
隔离级别可以通过编程方式进行设置,也可以通过使用 SQL 语法 SET TRANSACTION ISOLATION LEVEL 进行设置调整事务隔离级别
http://technet.microsoft.com/zh-cn/library/ms189542.aspx
SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
http://technet.microsoft.com/zh-cn/library/ms173763.aspx
解决更新丢失
访问速度缓慢
操作缓慢
问题:
我考虑降低隔离级别,但没找到哪里进行设置。
提高服务器性能,使用APP与DATA SERVER分离的方式。
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 有待高手提供建议,方法,恳请赐教,十分感谢。
------------------
查询统计报表时,用
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
来降低隔离级别
必须的!!!
---SET TRANSACTION ISOLATION LEVEL 语句来指定
在线聊天
perfectaction
完美行动
等级:
发表于:2008-05-16 16:08:2511楼 得分:0
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 不是磁盘阵列就不用试了,越分越慢。 如是磁盘阵列,可以分,但前提是你有多块cpu
尽量让数据分布均匀,
关于分区表:
已分区表和已分区索引概念
http://technet.microsoft.com/zh-cn/library/ms190787.aspx
设计分区以提高查询性能
http://technet.microsoft.com/zh-cn/library/ms177411.aspx
CPU都影响什么因素?
http://technet.microsoft.com/zh-cn/magazine/cc137784.aspx
(1)关键要依赖于优良的应用程序代码;
(2)妥善设置数据库缓存
(3)配置服务器,最大化利用现有资源(多CPU/多核、内存、15000rpm硬盘/合理的RAID方案),。
400个以上的公司登录系统并进行操作。
每个公司有2-20个人不等看字面意思至少会有超过1000个并行查询,如此之多的并行,至少要做到查询负载均衡!
由于大数据量查询,索引至关重要,但索引在大数据量增删改的情况下会拖累整体性能,如何解决查询同时增删改的平衡暂无好方法。要求:
解决更新丢失 --很有可能是并行机制出错,可采用2005的server broker 技术
访问速度缓慢 --并行量太大,I/O成为瓶颈
操作缓慢 --CPU资源不够
问题:
我考虑降低隔离级别,但没找到哪里进行设置。 --可行
提高服务器性能,使用APP与DATA SERVER分离的方式。 --可行
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 --如果单表数据量不大,没有必要 总体感觉:分布式还是一次性解决问题的根本方法,当然难度会比较高。但查询分布式一定是要做的,这个通过2005订阅可实现。采用1写多读的服务群,读服务器设置nolock,设置readonly
所以我想首先应该考虑一般的优化方法,
楼主需要提供以下信息:
1、中间层程序的优化情况
2、索引是否进行过优化
3、并行的情况,是否有一些数据量大或者访问特别频繁或者访问速度特别慢的瓶颈表关于楼主的问题
我考虑降低隔离级别,但没找到哪里进行设置。
降低隔离级别的方法往往是不可取的,除非你的系统只进行查询操作,否则,产生数据不一致是更可怕的后果提高服务器性能,使用APP与DATA SERVER分离的方式。
有条件当然分开使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。
表分区技术当然需要硬件配合