Подключение к базе данных дерби в eclipse [дубликат]

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

Таким образом, мы можем использовать здесь Skip и Take для лучшей производительности.

public static class MyExtensions
    {
        public static IEnumerable<IEnumerable<T>> Batch<T>(this IEnumerable<T> items, int maxItems)
        {
            return items.Select((item, index) => new { item, index })
                        .GroupBy(x => x.index / maxItems)
                        .Select(g => g.Select(x => x.item));
        }

        public static IEnumerable<T> Batch2<T>(this IEnumerable<T> items, int skip, int take)
        {
            return items.Skip(skip).Take(take);
        }

    }

Далее я проверил 100000 записей. Зацикливание занимает больше времени в случае Batch

Code of console application.

static void Main(string[] args)
{
    List<string> Ids = GetData("First");
    List<string> Ids2 = GetData("tsriF");

    Stopwatch FirstWatch = new Stopwatch();
    FirstWatch.Start();
    foreach (var batch in Ids2.Batch(5000))
    {
        // Console.WriteLine("Batch Ouput:= " + string.Join(",", batch));
    }
    FirstWatch.Stop();
    Console.WriteLine("Done Processing time taken:= "+ FirstWatch.Elapsed.ToString());


    Stopwatch Second = new Stopwatch();

    Second.Start();
    int Length = Ids2.Count;
    int StartIndex = 0;
    int BatchSize = 5000;
    while (Length > 0)
    {
        var SecBatch = Ids2.Batch2(StartIndex, BatchSize);
        // Console.WriteLine("Second Batch Ouput:= " + string.Join(",", SecBatch));
        Length = Length - BatchSize;
        StartIndex += BatchSize;
    }

    Second.Stop();
    Console.WriteLine("Done Processing time taken Second:= " + Second.Elapsed.ToString());
    Console.ReadKey();
}

static List<string> GetData(string name)
{
    List<string> Data = new List<string>();
    for (int i = 0; i < 100000; i++)
    {
        Data.Add(string.Format("{0} {1}", name, i.ToString()));
    }

    return Data;
}

Записанное время Это как.

Сначала - 00: 00: 00.0708, 00: 00: 00.0660

Второе (выберите и пропустите) - 00: 00: 00.0008, 00: 00: 00.0008

3
задан Robert Justin 19 August 2017 в 06:40
поделиться

1 ответ

Я думаю, что вы не запускаете свой derver server в определенном порту, который вы используете. вам нужно запустить сервер, используя команду ниже на localhost с портом по умолчанию 1527

startNetworkServer -h 0.0.0.0

, если вы хотите изменить порт, который вы можете использовать ниже:

startNetworkServer -p 3301  // new port number

для [ссылка]

http://www.vogella.com/tutorials/ApacheDerby/article.html

может возникнуть эта ошибка из-за следующих причин:

1) Брандмауэр не разрешен для комбинации хост-портов

2) Клиент и сервер, оба или оба из них не находятся в сети.

3) Сервер работает, но не прослушивает порт, клиент пытается подключиться.

4) Сервер не запущен.

5) Неверный протокол в Строка подключения

3
ответ дан Anshul Sharma 15 August 2018 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: