Moja aplikacja C# .NET zapisuje miliony rekordów w tabeli tymczasowej za pomocą OracleBulkCopy. Za każdym razem, gdy aplikacja ma 20000 rekordów lub więcej w pamięci, wywołuje OracleBulkCopy, aby zapisać je wszystkie w jednej partii (używam rozmiaru wsadu = 0). Na początku tabela jest pusta, a napisanie całej partii zajmuje tylko 2 sekundy. W trakcie procesu wydłuża się czas pisania partii. Po 2.000.000 rekordów każde połączenie trwa prawie 25 sekund. Używam domyślnych opcji OracleBulkCopy. Wykonanie niektórych testów, gdy stół osiągnie 40 000 000, zajmuje prawie 3 minuty, aby zapisać 20 000 rekordów.OracleBulkCopy Performance
Chciałbym wiedzieć, czy istnieje jakieś zalecenie (nie mogłem nic na ten temat znaleźć), aby utrzymać prawie stały czas każdego połączenia. Czy robię coś złego?
Czy masz jakieś wyzwalacze wstawiania w tym stole? – Nate
Nie, nic. Nawet klucz podstawowy. A tabela jest ustawiona na brak logowania. –
Co dokładnie oznacza tabela "temp"? Globalny tabela tymczasowa? – DCookie