ipark's blog[MVP SharePoint]

SharePoint related...
随笔 - 23, 评论 - 123, 引用 - 3

导航

关于

My Old Blog: http://freepark.cnblogs.com Email:ipark.cn@gmail.com




Locations of visitors to this page



Creative Commons License

标签

每月存档

最新留言

广告

[SDK]WSS V3 SDk,MOSS SDK最新正式版抢先看

WSS V3 和MOSS的SDK的正式版终于发布了,下载地址我不重新贴了,这里有:

WSS 3.0 SDK 与 MOSS 2007 SDK 正式版终于发布出来了 (Kaneboy's Blog)

抢先看一下正式版的SDK都包含了哪些新的内容:

总体来说SDK的内容完全充实了,之前很多页面都只有标题。

1)WSS V3 SDK

让我感到很激动的是,用VS开发自定义工作流的Sample,利用ASPX页面作为工作流交互的页面的例子ASPXCollectFeedback。这正是长久以来,我们希望看到的例子!

还包括工作流开发的VS模板以及一个文档WorkflowVSProjectTemplatesReadme.doc。

2)MOSS SDK

里面包括了WSS V3  SDk,OSSSDK2007和示例代码,Form Services SDK和ECM Starter Kit(企业内容管理)。

MOSS SDK包含的示例代码:

1、SSO示例

2、BusinessDataCatalogMetadataSamples:BDC示例

3、WebPartFiltersAndConsumers:过滤器WebPark示例

ECM Starter Kit中包含的是企业内容管理相关的白皮书和示例工程:

白皮书包括了:

1、如何使用和配置IRM功能

2、WorkflowSecurityTopics

3、如何在SharePointDesigner中导入Custom Actions

4、Office文档数字签名和RMS加密

示例工程:

主要包括了工作流方面,文档转换(Document Convertor),记录管理(Record Management)三个方面的内容

 

总体来说,很多的解答了我们最近关注的问题,比如SSO,工作流,CustomActions,IRM,记录管理,BDC等。

这个SDK的新信息很多,赶紧下载......

posted on 2007-01-23 13:13:00 by ipark  评论(6) 阅读(7927)

[List Performance] MOSS列表性能测试和性能调优建议

MOSS的列表相比之前的版本有了很多增强,内容类型,列表文件夹,版本控制,列表索引等特性的增强。因此,利用列表作为内容存储和维护的介质变得很方便。但是大家在做应用的时候一个重要的考虑就是,列表的性能问题。少量数据列表的应用列表的性能没有问题,但是当列表的数据达到了万数以上的时候,MOSS的列表的性能表现如何呢。为此,做了个测试,希望结果能给大家一个参考。

1)测试环境

操作系统:(VPC 2007 RC1中的虚拟机系统)Windows Server 2003

系统分配内存:1G

CPU:Intel PM 1.7G

MOSS版本:Microsoft Office SharePoint Server 2007 RTM

 

2)测试列表

测试用的列表是一个网站集顶级网站下自定义列表,自定义字段如下。

列表用文件夹来分类内容,测试用的内容存储在“新闻快报”文件夹中。

 

 

3)测试内容

1、测试列表默认显示页面的显示速度(AllItem.aspx)

主要测试为“标题”字段建立索引前后的速度变化

注:MOSS中可以为列表的某些字段建立索引(列表设置->栏设置),增强列表的访问速度

2、代码访问的性能

本测试是创建一个Layouts下的自定义web应用程序,取出List里面“新闻快报”文件夹下的内容填充页面上的GridView(每页显示20条记录)。

整个过程分3个步骤:

Step1:查询得到“新闻快报”文件夹下的ListItemCollection

利用,SPList.GetItems(SPQuery query)

利用tempquery.ViewFields="<FieldRef Name='Author' /><FieldRef Name='Title'/>";可以设置查询时候返回哪些字段;

测试中分了两种情况来查询:

情况1):查询所有字段

情况2):只查询特定字段

Step2:根据ListItemCollection生成DataTable作为GridView的数据源

利用两种方法:

方法1)遍历ListItem,根据每个ListItem创建一个DataRow,创建DataTable;

方法2)利用SPListItemCollection.GetDataTable(),遍历取到的DataTable,创建符合条件的DataTable;

Step3:GridView的数据绑定

给每个标题加链接,绑定数据

 

4)测试结果和讨论

1、默认显示页面打开速度

该测试中,整个列表中含有8000条数据,“新闻快报”文件夹有2000条数据,每页显示100条

未建立索引:7秒

建立索引后:2秒左右

结论:给列表字段启用索引可以提升访问速度

2、代码访问性能

该测试均基于对列表标题做了索引的基础上。

测试了“新闻快报”中含有2000条数据(列表总共8000条数据)和15000条数据(列表共21000条数据)两种数据量下的性能。

单位:毫秒

结论

a、利用两种方法生成数据源的速度差不多

b、利用ViewFields来设置查询字段可以显著提高访问速度

c、在数据量很大的时候访问速度不是很理想(这个还有调优的余地,见后文)

 

5)性能调优建议

0、SPListItemCollection的GetDataTable方法取不到隐藏字段,如果要取到隐藏字段请使用遍历列表的方法

除此之外,两种方法没有什么性能的区别

1、对列表字段启用字段索引,在大数据量的情况下很有必要

2、妥善利用SPQuery的查询限制

比如ViewFields,限定查询返回的字段,默认的隐藏字段默认都会被返回。

利用RowLimit,来限制返回的结果的数量,结合SPQuery的Query对Orderby的支持可以满足很多情况的应用;比如最新发布的10条新闻,就可Orderby创建时间,RowLimit=10这样来查询

Query Caml中在MOSS中支持Contain这样的模糊查询,可以用来过滤数据

3、对大数据量的查询中,只取你需要的数据

比如,用GridView的时候不要把所有的数据取出来交给GridView,让GridView来做分页。

而是,自己做分页,每次只取每页显示数量那么多(PageSize)的数据。即只取当前页要显示的数据。

如果当前页时第5页,每页显示20个数据,我只取第81-100条数据(这个需要和SPQuery的Orderby一起使用,这样你取出来的数据才是有序的)

在上面的测试中,我利用此方法,在大数据量的时候能再节约800毫秒左右的时间。

4、对大数据量的列表应用中,对数据进行归档

归档的数据存储在另外的地方,这样可以保证列表的活跃数据的访问速度

5、能少用对象模型的地方尽量少用

6、利用对象模型取数据的时间有一个极限,这是对象模型的限制

在测试的三个步骤中,最耗时间的是在第二个步骤,确切地说是第一次访问SPListItemCollection的属性或者方法的时候。

SPListItemCollection的内部机制是在SPListItemCollection myitems = SPList.GetItems(SPQuery query)这个方法执行后,myitems里面并不含有数据,只是记录query的查询条件

只有当你第一次访问SPListItemCollection的属性或者方法的时候,myitems内部会有一个EnsureListItemsData的私有方法来初始化数据,

这个方法运行的时间就是利用对象模型取数据的极限时间。

posted on 2007-01-22 11:49:00 by ipark  评论(17) 阅读(7236)

Powered by: Joycode.MVC引擎 0.5.2.0