2009-08-06 4 views
0

Я хотел бы хранить большие объемы данных (текста) в таблице с шестью столбцами и до десяти тысяч строк.Каков наиболее эффективный способ хранения больших объемов данных в таблице в C#

Я буду строить план программно. (Смысл я хочу, чтобы иметь возможность добавлять строки по мере того, как я иду)

Является ли доступ к данным моим лучшим вариантом? Я планирую привязать его к элементу управления сетью Telerik для ASP.NET.

Мне интересно, что мне лучше заниматься другим типом класса, о котором я не знаю.

Я буду использовать возможности управления сортировкой и страницей, но я не знаю, слишком ли это имеет значение для базового объекта.

Извлечение, затем хранение, а затем время программиста следует учитывать, когда я говорю об эффективности.

+2

Эффективный способ? время поиска, хранение, время программиста? –

+0

Извлечение, затем хранение, а затем время программиста . Я также добавлю это к основному описанию вопроса. – Matt

ответ

4

Я бы создал класс со свойствами, которые представляют эти шесть строк, а затем использовать его в списке. Очень быстро:

public class Result 
{ 
    public string Title { get; set; } 
    public double Score { get; set; } 
    public string Summary { get; set; } 
    // etc. 

    public Result(string title, double score, string summary) 
    { 
     Title = title; 
     Score = score; 
     Summary = summary; 
    } 

    public Result() { } 
} 

public class Test 
{ 
    public static IList<Result> GetResults() 
    { 
     List<Result> results = new List<Result>(); 

     results.Add(new Result("First result", 0.914, "This is the summary")); 
     results.Add(new Result("Second result", 0.783, "More summary....")); 
     results.Add(new Result { Title = "Third", Score = 0.54, Summary = "Anonymous I am..." }); 
     // etc 
     return results; 
    } 
} 

Вы можете перечислить коллекцию List или привязать его к элементу управления с привязкой к данным или использовать его с помощью LINQ и т.д.

1

Если вы хотите быть эффективным с точки зрения времени программирования или времени поиска в многопользовательской среде, вам следует рассмотреть возможность использования SQL Server.

+0

Это фактически результаты Lucene, но мне интересно, есть ли еще какие-то новые классы данных для этого типа вещей. – Matt

2

Во-первых, делать то, что описывает Dan Diplo. DataTable - базовая структура данных для класса DataSet. DataSets известны тем, что неэффективны при использовании памяти.

Во-вторых, для быстрого хранения: не возвращайте все 10 000 записей на одну страницу. Показывать подмножество за раз (например, 20) в сетке с постраничной сеткой. Чем меньше данных вы должны пройти и проанализировать, тем лучше.

Затем, если возможно, поверните видоискатель на сетке. ViewState может вычеркнуть размер вашей страницы (в 2 раза хуже или хуже). Это проблема как для браузера (просмотр страницы), так и для сервера (необходимо перезагрузить все данные ViewState). Избегайте его как можно лучше.

Если у вас есть ViewState, а производительность все еще и проблема, переместите ViewState на сервер, чтобы он не передавался в браузер.

+0

Не могли бы вы предложить мне, где я могу узнать больше о проблемах производительности с помощью ViewState? TiA – abatishchev

+0

http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx и http://msdn.microsoft.com/en-us/library/ms998549.aspx являются хорошее место для начала. –

0

Используйте базу данных.