下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、在 SharePoint Server 中編寫有效代碼SharePoint 2010 如果使用 SharePoint 對象模型編寫自定義解決方案,應(yīng)該注意與性能、可擴展性和可伸縮性相關(guān)的常見問題。本主題可以幫助您有效地對現(xiàn)有 SharePoint 應(yīng)用程序進行故障排除并提高其性能,或者編寫新 SharePoint 應(yīng)用程序。在這兩種情況下,都需要了解如何使 SharePoint 對象模型高效地工作,以及如何將常規(guī)編程技巧專門應(yīng)用于 SharePoint 平臺。使用 SPQuery 對象 設(shè)計合理的查詢可以幫助您避免隨著時間的推移而可能出現(xiàn)的性能問題,因為網(wǎng)站的列表和文件夾數(shù)目會不斷增加。以下技
2、巧可以幫助您盡可能最高效地使用 SPQuery 對象。 使用界定的 SPQuery 對象。RowLimit 沒有相應(yīng)值的 SPQuery 性能不佳,并且無法用于大型列表。請為 RowLimit 指定一個 1 到 2000 之間的值,并根據(jù)需要分頁顯示列表。要獲取演示如何執(zhí)行此操作的代碼示例,請參閱處理大型文件夾和列表。 限制結(jié)果集。 如果查詢返回的項目多于在 Microsoft SharePoint Foundation 2010 中配置的查詢閾值,則將阻止查詢并且不顯示結(jié)果。默認查詢閾值為 5,000 項,但您可以將其設(shè)置為更小的值。對于 Microsoft SharePoint Serve
3、r 2010 查詢,如果您需要所有項目,請使用 ContentIterator.MaxItemsPerQuery 并分頁顯示結(jié)果。 使用索引字段。 如果所查詢的字段未編制索引,并且生成的掃描在列表中遇到的項目多于查詢閾值,則將阻止查詢。請將 SPQuery.RowLimit 設(shè)置為小于查詢閾值的值。確保 ContentIterator.MaxItemsPerQuery 的值小于或等于該閾值,這是為 SharePoint Server 2010 推薦的值。 確保包含以下三個 OrderBy 子句之一,以便允許使用索引:ContentIterator.ItemEnumerationOrderByI
4、D、ContentIterator.ItemEnumerationOrderByPath 或 ContentIterator.ItemEnumerationOrderByNVPField。如果沒有 OrderBy 子句,則查詢可能會被阻止。SharePoint Server 2010 添加了默認 OrderBy 子句,該子句按內(nèi)容類型進行排序,以便確保先返回文件夾,然后再返回列表項。除非使用上面列出的三個 OrderBy 子句之一覆蓋此行為,否則查詢將不能充分發(fā)揮使用索引字段的優(yōu)勢,并且當查詢的限制不夠嚴格,無法保證返回的項目少于最大項目數(shù)時,查詢將會被阻止。以下代碼示例演示如何使用 Cont
5、entIterator.ItemEnumerationOrderByNVPField 子句。該示例假定您要查詢索引字段。VB C# C+ F# JScript 復制 SPQuery query = new SPQuery();query.Query = FieldValue + ContentIterator.ItemEnumerationOrderByNVPField;ContentIterator ci = new ContentIterator();ci.ProcessItemsInList(query, delegate(SPListItem item) / Work on each
6、item. , delegate(SPListItem item, Exception e) / Handle an exception that was thrown while iterating. / Return true so that ContentIterator rethrows the exception. return true; );使用 PortalSiteMapProvider 使用 PortalSiteMapProvider(僅限 Microsoft Office SharePoint Server 2007 和 Microsoft SharePoint Serve
7、r 2010)。Steve Peschka 的白皮書在 Office SharePoint Server 2007 中處理大型列表(該鏈接可能指向英文頁面)介紹了使用 PortalSiteMapProvider 類檢索列表數(shù)據(jù)的有效方法。PortalSiteMapProvider 提供了用于檢索列表數(shù)據(jù)的自動緩存基礎(chǔ)結(jié)構(gòu)。PortalSiteMapProvider 的 GetCachedListItemsByQuery 方法采用 SPQuery 對象作為參數(shù),然后檢查其緩存以確定項目是否已經(jīng)存在。如果已經(jīng)存在,則該方法返回緩存的結(jié)果。如果不存在,則該方法查詢列表并將結(jié)果存儲在緩存中。當檢索的列
8、表數(shù)據(jù)在一段時間內(nèi)不會頻繁更改時,該方法尤其有效。如果數(shù)據(jù)集頻繁更改,則除了從數(shù)據(jù)庫讀取數(shù)據(jù)所產(chǎn)生的開銷外,該類還會因為不斷寫入緩存而產(chǎn)生性能開銷。請注意,PortalSiteMapProvider 類使用網(wǎng)站集對象緩存來存儲數(shù)據(jù)。此緩存默認大小為 100 MB。您可以在每個網(wǎng)站集的對象緩存設(shè)置頁上增加網(wǎng)站集的此緩存大小。但是,由于此內(nèi)存來自供應(yīng)用程序池使用的共享內(nèi)存,因此可能會影響其他應(yīng)用程序的性能。另一個重要限制是您不能在基于 Windows 窗體的應(yīng)用程序中使用 PortalSiteMapProvider 類。以下代碼示例顯示如何使用此方法。 良好的編碼實踐 使用 PortalSiteM
9、apProvider VB C# C+ F# JScript 復制 / Get the current SPWeb object. SPWeb curWeb = SPControl.GetContextWeb(HttpContext.Current); / Create the query. SPQuery curQry = new SPQuery(); curQry.Query = Hotel; / Create an instance of PortalSiteMapProvider. PortalSiteMapProvider ps = PortalSiteMapProvider.WebSiteMapProvider; PortalWebSiteMapNode pNode = ps.FindSiteMapNode(curWeb.ServerRelativeUrl) as PortalWebSiteMapNode; / Retrieve the items. SiteMapNodeCollection pItems = ps.GetCachedListItemsByQuery(pNode, myList
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學《辦公空間設(shè)計》2022-2023學年第一學期期末試卷
- 大班數(shù)學課件《9的分解與組成》
- 2024工程勞務(wù)用工合同范本
- 2024的榨菜種植產(chǎn)銷合同
- 2024工程分包合同范本
- 2024居間服務(wù)合同個人貼息
- 2024新版房產(chǎn)抵押合同協(xié)議書
- 2024關(guān)于經(jīng)營房屋租賃合同范本
- 2024委托繳費授權(quán)合同樣書
- 深圳大學《瑜伽俱樂部》2022-2023學年第一學期期末試卷
- 新版高中物理必做實驗目錄及器材-(電子版)
- (正式版)QC∕T 625-2024 汽車用涂鍍層和化學處理層
- 2024年中級咖啡師技能鑒定考前必刷必練題庫500題(含真題、必會題)
- CJ/T 123-2016 給水用鋼骨架聚乙烯塑料復合管
- 跟著音樂游中國智慧樹知到期末考試答案章節(jié)答案2024年廣州大學
- 基于智能巡檢機器人與PLC系統(tǒng)聯(lián)動控制設(shè)計
- 2024江蘇省沿海開發(fā)集團限公司招聘23人重點基礎(chǔ)提升難、易點模擬試題(共500題)附帶答案詳解
- 危險貨物道路運輸規(guī)則第7部分:運輸條件及作業(yè)要求(JTT617.7-2018)
- 技術(shù)管理規(guī)范標準
- 2024年小學生科技素養(yǎng)比賽題庫及答案(共180題)
- 初二家長會(地理、生物會考動員)
評論
0/150
提交評論