標籤:style blog http color os io strong for 檔案
本文主要介紹SharePoint列表庫的效率問題,一直以來以為闕值5k,超過會線性下降,需要分檔案夾存放;或許這是之前版本的描述,但是2013版本通過測試,真心不是這麼一回事兒。
下面,簡單介紹下自己的測試過程:
1、建立一個測試清單,Data Test如:
2、建立控制台程式,添加插入資料代碼,如下:
3、添加的代碼:
using (SPWeb web = site.OpenWeb()){ SPList list = web.Lists["Data Test"]; StringBuilder sbDelete = new StringBuilder(); sbDelete.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Batch>"); for (int i = 0; i < 2; i++) { sbDelete.Append("<Method>"); sbDelete.Append("<SetList Scope=\"Request\">" + list.ID + "</SetList>"); sbDelete.Append("<SetVar Name=\"ID\">New</SetVar>"); sbDelete.Append("<SetVar Name=\"Cmd\">Save</SetVar>"); sbDelete.Append("<SetVar Name=" + "\"urn:schemas-microsoft-com:office:office#Title\">Test Data " + i.ToString() + "</SetVar>"); sbDelete.Append("</Method>"); Console.WriteLine("Num. " + i.ToString()); } sbDelete.Append("</Batch>"); Console.WriteLine("Start Time:" + DateTime.Now.ToString()); web.ProcessBatchData(sbDelete.ToString()); Console.WriteLine("End Time:" + DateTime.Now.ToString()); Console.WriteLine("Data Insert complate...");}
4、查看添加1w資料,耗時3分27秒,如:
5、查看列表設定,超出列表預設闕值,如:
6、嘗試刪除列表,發現報錯,因為超過闕值,如:
7、管理中心修改列表闕值,如:
8、插入5w條資料,花費時間18分47秒,如:
9、插入資料時的工作管理員,控制台佔用很大記憶體;
總 結
一直以來,以為SharePoint列表庫超過5000不分檔案夾存放,效能會呈線性下降,真的測試了才發現效率可觀。當在測試清單插入100w資料時,列表視圖單頁1k個項目,翻頁速度不到秒的層級,可以說很快。
當然,自己的資料量達到百萬層級,但是資料結構簡單,並沒有附件類型,可能會使效率更快,有一定誤差,接下來有時間還會做類似的測試,分享結果給大家參考。
SharePoint 2013 列表關於大資料的測試