第一次接触数据库性能问题,问题较菜,大家顺便拿分。 当前系统中在短时间内会有400个以上的公司登录系统并进行操作。 
每个公司有2-20个人不等。 
同时对多个数据库表进行增加、删除、修改,查询操作。 
在固定的时刻,客户/服务器本身会开始对数据库操作,短时间出现峰值。 
前提: 
目前不考虑分布式 
服务器配置当作优良 
SQL SERVER 2005 
.NET FRAMEWORK 2.0 
3层开发模式 要求: 
解决更新丢失 
访问速度缓慢 
操作缓慢 
问题: 
我考虑降低隔离级别,但没找到哪里进行设置。 
提高服务器性能,使用APP与DATA SERVER分离的方式。 
使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 有待高手提供建议,方法,恳请赐教,十分感谢。

解决方案 »

  1.   

    我考虑降低隔离级别,但没找到哪里进行设置。   
    隔离级别可以通过编程方式进行设置,也可以通过使用 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
      

  2.   

    要求:  
    解决更新丢失  
    访问速度缓慢  
    操作缓慢  
    问题:  
    我考虑降低隔离级别,但没找到哪里进行设置。  
    提高服务器性能,使用APP与DATA SERVER分离的方式。  
    使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。  有待高手提供建议,方法,恳请赐教,十分感谢。
    ------------------
    查询统计报表时,用
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    来降低隔离级别
      

  3.   

    提高服务器性能,使用APP与DATA SERVER分离的方式。  ----------------
    必须的!!!
      

  4.   

    使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 ------------------------不是磁盘阵列就不用试了,越分越慢。如是磁盘阵列,可以分,但前提是你有多块cpu
      

  5.   

    我考虑降低隔离级别,但没找到哪里进行设置
    ---SET TRANSACTION ISOLATION LEVEL 语句来指定
      

  6.   

    使用SQL SERVER 2005表分区技术,但不知道是否会提高性能--发送私信 
    在线聊天
     perfectaction 
    完美行动 
    等级:
     发表于:2008-05-16 16:08:2511楼 得分:0 
    使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。  不是磁盘阵列就不用试了,越分越慢。 如是磁盘阵列,可以分,但前提是你有多块cpu 
     
      

  7.   

    关于分区,关键要看你的数据是否满足分区条件,怎样分区,要看你的数据分布,
    尽量让数据分布均匀,
    关于分区表:
    已分区表和已分区索引概念
    http://technet.microsoft.com/zh-cn/library/ms190787.aspx
    设计分区以提高查询性能
    http://technet.microsoft.com/zh-cn/library/ms177411.aspx
      

  8.   

    可以将分区映射到文件组,每个分区访问一个不同的物理磁盘驱动器,以便提高 I/O 性能。当 SQL Server 针对 I/O 操作执行数据排序时,它会首先按分区对数据进行排序。在此方案下,SQL Server 每次访问一个驱动器,这样可能会降低性能。为了提高性能,更好的解决方案是通过设置 RAID 将多个磁盘中的分区数据文件条带化。这样一来,尽管 SQL Server 仍按分区对数据进行排序,但它可以同时访问每个分区的所有驱动器。不管所有分区是在一个文件组中还是在多个文件组中,都可以设计此配置。有关 SQL Server 如何处理不同的 RAID 级别的详细信息,请参阅 RAID 级别和 SQL Server。
      

  9.   

    准备用RAID0+1做数据存储,RAID1做日志。
    CPU都影响什么因素?
      

  10.   

    优化 SQL Server CPU 性能
    http://technet.microsoft.com/zh-cn/magazine/cc137784.aspx
      

  11.   


    (1)关键要依赖于优良的应用程序代码;
    (2)妥善设置数据库缓存
    (3)配置服务器,最大化利用现有资源(多CPU/多核、内存、15000rpm硬盘/合理的RAID方案),。
      

  12.   


    400个以上的公司登录系统并进行操作。  
    每个公司有2-20个人不等看字面意思至少会有超过1000个并行查询,如此之多的并行,至少要做到查询负载均衡!
    由于大数据量查询,索引至关重要,但索引在大数据量增删改的情况下会拖累整体性能,如何解决查询同时增删改的平衡暂无好方法。要求:  
    解决更新丢失  --很有可能是并行机制出错,可采用2005的server broker 技术
    访问速度缓慢  --并行量太大,I/O成为瓶颈
    操作缓慢  --CPU资源不够
    问题:  
    我考虑降低隔离级别,但没找到哪里进行设置。  --可行
    提高服务器性能,使用APP与DATA SERVER分离的方式。 --可行 
    使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。 --如果单表数据量不大,没有必要 总体感觉:分布式还是一次性解决问题的根本方法,当然难度会比较高。但查询分布式一定是要做的,这个通过2005订阅可实现。采用1写多读的服务群,读服务器设置nolock,设置readonly
      

  13.   

    关于优化,应该由简而烦、由浅而深
    所以我想首先应该考虑一般的优化方法,
    楼主需要提供以下信息:
    1、中间层程序的优化情况
    2、索引是否进行过优化
    3、并行的情况,是否有一些数据量大或者访问特别频繁或者访问速度特别慢的瓶颈表关于楼主的问题
    我考虑降低隔离级别,但没找到哪里进行设置。  
    降低隔离级别的方法往往是不可取的,除非你的系统只进行查询操作,否则,产生数据不一致是更可怕的后果提高服务器性能,使用APP与DATA SERVER分离的方式。  
    有条件当然分开使用SQL SERVER 2005表分区技术,但不知道是否会提高性能。  
    表分区技术当然需要硬件配合