关于取所有Folder性能问题

wuhan_dotnet 2016-01-28 11:49:43
目前我有一个文档库,里面大概有2000个文件夹,一万多个文件,目前我就想把文件夹的树形结构读出来,试了几种方式,性能都不是很理想,下面列下几种方式的性能消耗:
1.直接使用SubFolders属性进行递归 大概耗时10秒 这种方式是最直接但性能不敢恭维
2.使用SPQuery 筛选出所有的Folder的Item,再用linq 取出树形结构的数据 这种性能目前为止是最快的,2秒
3.使用SPQuery 筛选出所有的Folder的Item ,使用ContentItertor对SPListItemCollection,然后根据Item.Folder取得文件夹及其父目录的ID 性能比第一种好不了多少,大概8秒左右

目前就想到这3个方式,只有第2种最快,但随着后续文档库的内容增加,2秒可能会变成4秒了。
希望大家能给点好的建议,看能否有更优化的方案。
...全文
150 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
霖雨 2016-01-29
  • 打赏
  • 举报
回复
这样的话,建议先把第一层的所有文件夹读出来,然后展示在左侧,点击的时候,再去ajax加载里面的内容,如果文件数量过大,就先加载一部分,做分页,点击下一页的时候,再去ajax读取,避免一次读取太多的文件造成过慢。
  • 打赏
  • 举报
回复
你的目的是要把一萬多份文件以樹狀顯示出來嗎? 還是先列出2000多個文件夾, 點擊文件夾後才立即Query該文件夾下的文件?
Justin-Liu 2016-01-29
  • 打赏
  • 举报
回复
分页加载+增加查询条件 可以吗?
wuhan_dotnet 2016-01-29
  • 打赏
  • 举报
回复
楼上几位的方法都可以,我目前使用了原生态的List.Folders再linq取所有的Folder到内存了,这样快了很多,谢谢各位的回复。。。结贴。。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨 - LinyuLoveTJ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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