SharePoint с большими данными

Я хочу обсудить SharePoint 2013, мы переходим к разработке системы транзакций корреспонденции в качестве продукта для нашей компании на SharePoint 2013, мы ожидаем больших данных с большой транзакцией в списке корреспонденции, мы хотим получить ваше мнение по этой проблеме, поэтому, пожалуйста, не могли бы вы помочь нам в это у нас есть вариант буксировки:

разработка с базой данных sql

разработка со списком SharePoint

так что, пожалуйста, ждите вашего полезного ответа с подробностями


person SharePoint Developer-    schedule 03.04.2014    source источник
comment
Можете ли вы определить для нас большие данные с большой транзакцией? Вы имеете в виду большой размер файла и большое количество файлов? Если да, то какого размера и сколько? Сколько транзакций в день / час / минуту вы ожидаете?   -  person Panoone    schedule 19.12.2014


Ответы (2)


По моему опыту, SharePoint не очень хорош для хранения огромного количества записей (сотни тысяч или даже миллионы) в списке. Причина в том, как данные хранятся в базе данных SharePoint - если вы проверите базу данных контента SharePoint, вы обнаружите, что все записи из всех списков в конкретном семействе сайтов хранятся в одной таблице AllListsData. Сама таблица на самом деле не нормализована, поэтому запросы выполняются не очень быстро, и вы получаете некоторую потерю производительности из-за использования SharePoint в качестве промежуточного программного обеспечения. Более того, поскольку все данные из всех списков хранятся в одной таблице, если у вас есть один огромный список в семействе сайтов, это может снизить производительность всего семейства сайтов.

Если вам действительно нужен SharePoint, я бы посоветовал вам использовать отдельную базу данных sql для хранения данных и использовать BCS для доступа к нему из SharePoint. Используя этот подход, вы можете нормализовать данные в отдельной базе данных и получать доступ к данным из SharePoint.

person Yevgeniy.Chernobrivets    schedule 03.04.2014
comment
Можете ли вы объяснить мне в коде, как вы будете получать данные из базы данных и как использовать рабочий процесс с таблицами в базе данных - person SharePoint Developer-; 06.04.2014
comment
Я не уверен, что вы можете использовать BCS с рабочими процессами. Тебе следует это попробовать. - person Yevgeniy.Chernobrivets; 06.04.2014

Чтобы обойти это с помощью клиентской объектной модели, вы можете использовать этот фрагмент кода, он использует элемент pos для получения более 5000K элементов. если вам нужен VB.NET или более подробный анализ, это сайт для вас здесь Фрагмент находится здесь

List list = ClientContext.Web.Lists.GetByTitle(“Assets”);
ListItemCollectionPosition itemPosition = null;
while (true) {
CamlQuery camlQuery = new CamlQuery();
camlQuery.ListItemCollectionPosition = itemPosition;
camlQuery.ViewXml = “<View>” + Constants.vbCr + Constants.vbLf + “<ViewFields>” +     Constants.vbCr + Constants.vbLf + “<FieldRef Name=’Id’/><FieldRef Name=’Title’/><FieldRef Name=’Serial_No’/><FieldRef Name=’CRM_ID’/>” + Constants.vbCr + Constants.vbLf + “</ViewFields>” + Constants.vbCr + Constants.vbLf + “<RowLimit>2201</RowLimit>” + Constants.vbCr + Constants.vbLf + ” </View>”;
ListItemCollection listItems = list.GetItems(camlQuery);
clientcontext.Load(listItems);
clientcontext.ExecuteQuery();
itemPosition = listItems.ListItemCollectionPosition;
foreach (ListItem listItem in listItems) {
Console.WriteLine(“Item Title: {0} Item Key: {1} CRM ID: {2}”, listItem(“Title”), listItem(“Serial_x0020_No_x002e_”), listItem(“CRM_ID”));
}
if (itemPosition == null) {
break; // TODO: might not be correct. Was : Exit While
}
Console.WriteLine(itemPosition.PagingInfo);
Console.WriteLine();
}
person rubin    schedule 18.12.2014