none
操作sharepoint中列表 和 数据库的效率 RRS feed

  • 问题

  • 问一下! 在sharepoint中操作 sharepoint中列表效率好还是操作数据库效率好!
    Anything Is Possible !
    2010年2月1日 15:31

答案

  • 关于效率,这个没有直接的答案。只能具体情况具体分析。

    对于用法,SharePoint List 虽然可以当做一个数据库来存数据,但缺乏很多关系数据库的特性。

    个人认为 SPList = Schema(ContentType/Field) + Data + UI(FieldControl/EditForm/DispForm...),不适合海量数据,对于自定义,如果通过界面操作扩展 Custom List 能够满足需求最好了,对于特殊数据类型的,可能需要开发 ContentType/List/Field 定义,这样开发成本也高些,不想纯 asp.net 那么容易,需要评估好。

    可以预测的是,如果你的数据量很大,查询效率要求苛刻,还是用数据库好了! SPList 官方的性能评析是,直接子项目(Folder 不算,也就说每个 Folder 还可以包含2000Item)不能大于 2000,否则会明显慢。才 2000 ?开国际玩笑吧,对于设计良好数据库 2000W 才是我们要的数据量 :)
    Hope Helpful | Xiaofeng Wang | http://www.leoworks.net
    • 已标记为答案 Jiang Hao 2010年2月4日 6:40
    2010年2月3日 17:30
    版主

全部回复

  • 关于效率,这个没有直接的答案。只能具体情况具体分析。

    对于用法,SharePoint List 虽然可以当做一个数据库来存数据,但缺乏很多关系数据库的特性。

    个人认为 SPList = Schema(ContentType/Field) + Data + UI(FieldControl/EditForm/DispForm...),不适合海量数据,对于自定义,如果通过界面操作扩展 Custom List 能够满足需求最好了,对于特殊数据类型的,可能需要开发 ContentType/List/Field 定义,这样开发成本也高些,不想纯 asp.net 那么容易,需要评估好。

    可以预测的是,如果你的数据量很大,查询效率要求苛刻,还是用数据库好了! SPList 官方的性能评析是,直接子项目(Folder 不算,也就说每个 Folder 还可以包含2000Item)不能大于 2000,否则会明显慢。才 2000 ?开国际玩笑吧,对于设计良好数据库 2000W 才是我们要的数据量 :)
    Hope Helpful | Xiaofeng Wang | http://www.leoworks.net
    • 已标记为答案 Jiang Hao 2010年2月4日 6:40
    2010年2月3日 17:30
    版主
  • o !谢谢!  如果用了自己的数据库! 怎么和sharepoint自身的数据关联呢?!
    Anything Is Possible !
    2010年2月4日 1:56
  • o !谢谢!  如果用了自己的数据库! 怎么和sharepoint自身的数据关联呢?!
    Anything Is Possible !

    我不太理解你的意思,

    不过,既然用自己的数据库,你最好直接建立自己的数据库,而不是往 SharePoint 站点内容数据库(contentdb)添加表、视图、存储过程。。。
    至于,数据,你想怎么关联就怎么关联,可以直接引用 SP 对象相关属性,比如你一张表其中一列可能直接引用某个 List 的 ListItem.UniqueId
    Hope Helpful | Xiaofeng Wang | http://www.leoworks.net
    2010年2月4日 2:13
    版主