Keresés

Új hozzászólás Aktív témák

  • leslie23

    tag

    válasz sztanozs #9803 üzenetére

    Köszönöm, martonx megerősített benne, hogy inkább tárolom az adatokat a memóriában, az Exceleket pedig a folyamat végén, szép sorban létrehozom. Ez gyorsan megvan, ha nem looppal, hanem tömbből egy lépésben rakom le a munkalapokra az adatokat.

    Most itt csak SELECT-ekről van szó, INSERT-nél nekem is az SqlBulkCopy szokott beválni tömeges betöltésre egy tranzakcióval. Itt most parallel foreach a harmadára csökkenti a teljes futási időt.

    Viszont arról nem találok semmit, hogy a connection timeouttal akkor mi is a helyzet. Kb. így néz ki a kódom, ha MaxDegreeOfParallelism = 1, akkor lefut, ha viszont beállítom mondjuk 10-re, akkor egyből eldobja a connectiont a 15 másodperc után. :Y

    await Task.Run(() =>
    {
        Parallel.ForEach<int>(Enumerable.Range(1, 10), new ParallelOptions { MaxDegreeOfParallelism = 1 }, (number) =>
        {
          using (SqlConnection conn = new SqlConnection(@"Server=.;Database=TestDB;Trusted_Connection=True;"))
            {
                SqlDataAdapter adapter = new SqlDataAdapter("WAITFOR DELAY '00:00:40' SELECT 'Hello World!' AS [Data]", conn);
                adapter.SelectCommand.CommandTimeout = 0;
                DataTable dt = new DataTable();
                adapter.Fill(dt);
                Console.WriteLine(dt.Rows[0][0]);
            }
        });
    });

Új hozzászólás Aktív témák