`
javatoyou
  • 浏览: 1021945 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Sybase数据库在UNIX、Windows上的实施和管理 讨论6 显示某个登录用户的信息

阅读更多

Sybase数据库在UNIX、Windows上的实施和管理》讨论6 显示某个登录用户的信息

clip_image002

近来大家讨论了一个问题,关于Sybase性能优化中,程序设计和编成对性能的“贡献率”,索引对性能的“贡献率”。


显然,性能和数据库设计、程序写法有着极大的关系,如果数据库没有好的设计,程序没有优化的编程,单凭Sybase参数优化、物理优化,这样的调整不可能有好的性能结果:应用程序、数据库后台程序决定了性能的80%,在硬件一定的条件下。

在应用已经确定的情况下,缩短响应时间的最佳办法是减少物理I/O,其方法来自于判断索引的有效性、必要性、正确性。总的来说,IO减少会导致性能提升缩短响应时间,而这很大程度上依赖索引:

  • 在一定数据量下避免全表扫描。
  • 定位查询中定位数据位置。
  • 范围查询中确定上下限位置。
  • 在索引科完全使用时采用索引覆盖,完全数据访问。
  • 在连接时避免排序操作。


但不是什么时候都可以建立索引,一般情况下可以按照下面的原则创建初始的索引,并测试运行其有效性:


  • 为Unique和primary key创建唯一索引,unique创建nonclustered多饮,primary key创建clustered索引;
  • 如果可能用索引来覆盖查询,则可以使用索引覆盖来进行查询操作。
  • 如果需要DML操作的表,如果将clustered索引建立了在单调递增的字段上,如序号列,则则坑农造成索引征用,如果恰好是allpages表,则锁争夺会成为必然。
  • 如果能建立唯一性索引则最好唯一,这样优化程序知道只要返回一行纪录即可,及早结束查询。
  • 索引键不可以太大,如使用小的数据类型。
  • 创建索引时,“谁在前面”很关键;
  • 应用程序中应尽量使用索引对象,如查询中引用被索引前导列

这段日子太忙,回复有些慢,但还是希望对大家有所帮助,文平

我们的工作团队致力于:

¨ 数据库+顾问服务

¨ 数据库+培训服务

¨ 数据库+优化服务

¨ 数据库+实施服务

¨ 远程 + DBA服务

¨ 汇文系统二次开发

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics