상당히 큰 목록에서 항목을 검색하는 데 문제가 있습니다. 50 개 이하의 항목으로 작은 목록에서 항목을 쉽고 빠르게 검색 할 수 있지만 4600 개 이하의 항목이 포함 된 목록에서 항목을 검색하려고하면 sqlsever.exe 프로세스가 요청 기간 동안 급증하지만 항목은 검색되지 않습니다. 웹 응용 프로그램 설정을 조절하면 문제를 일으키는 원인이 될 수 없습니다. 다음은 원래 항목을 검색하는 데 사용한 코드입니다. 정말로 특별한 것은 없습니다.목록에서 항목을 검색하는 중 시간이 초과되었습니다.
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists[uid.ToString()];
SPListItemCollection itemCollection = list.Items;
foreach (SPListItem i in itemCollection) //This is where the code stops responding
{
//Use list items
}
}
}
그 후 작동하지 않아서 목록에서 항목을 검색하는 몇 가지 다른 방법을 시도했습니다. 나는 또한 시도
SPList list = web.Lists[uid.ToString()];
SPQuery query = new SPQuery();
query.Query = "";
query.QueryThrottleMode = SPQueryThrottleOption.Override;
SPListItemCollection itemCollection = list.GetItems(query);
//The code stops here
//I added this part for interest sake, i wanted to if it was the looping that caused the problem
//It seems the when you try to access properties of the item collection that the problem occurs
int itemCount = itemCollection.Count;
foreach (SPListItem i in itemCollection)
{
//Use list items
}
: 여기에 코드입니다
SPList list = web.Lists[uid.ToString()];
SPListItemCollectionPosition pos;
DataTable dt = list.GetDataTable(new SPQuery(), SPListGetDataTableOptions.None, out pos); //The code stops responding here
foreach (DataRow i in dt.Rows)
{
//Use data rows
}
사람이 문제의 원인이 될 수있는 것을 알고 있나요?
미리 감사드립니다.
링크를 더 이상 사용할 수 없습니다. –