Какой самый эффективный способ хранить большие объемы данных в таблице в C # - PullRequest
0 голосов
/ 07 августа 2009

Я хотел бы хранить большие объемы данных (текст) в таблице с шестью столбцами и до десяти тысяч строк.

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

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

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

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

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

Ответы [ 4 ]

4 голосов
/ 07 августа 2009

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

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 и т. Д.

2 голосов
/ 07 августа 2009

Прежде всего, делай то, что описывает Дэн Дипл. DataTable является базовой структурой данных для класса DataSet. DataSets печально известны своей неэффективностью с использованием памяти.

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

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

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

1 голос
/ 07 августа 2009

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

0 голосов
/ 07 августа 2009

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

...