Próbuję odczytać kolumnę typu clob z oracle w .Net i obserwując bardzo słabą wydajność i duży ruch sieciowy.Słaba wydajność uzyskiwanie pola klamry od Oracle w .Net
Próbowałem metod ODP + OCI, devArt + OCI, aby uzyskać dostęp do danych z tymi samymi wynikami - uzyskanie 1000 wierszy w czytniku danych zajmuje około 20 sekund i odczytanie wartości clob dla każdego wiersza.
Analizując ślady wireshark, okazuje się, że za każdym razem, gdy próbuję odczytać pole clob dla pojedynczego wiersza w czytniku, istnieje kilka dodatkowych pakietów TCP wysyłanych między klientem a serwerem. Tak więc dla 1000 wierszy staje się to 1000 razy wolniejsze niż w przypadku zapytań tylko w jednym wierszu.
W tym samym czasie, jeśli uruchomię to samo zapytanie w SQL Developer (który, jak sądzę, używa cienkiego sterownika jdbc zamiast oci), natychmiast otrzymuję wyniki, w tym wartości clob. Nie próbuje kwerendy do clob dla każdego wiersza - pobiera je wszystkie za jednym razem!
Ale nie widzę cienkiego klienta dla .net. Jak mogę przyspieszyć? Proszę pomóż!
EDYCJA: Mój typ pola to faktycznie XMLTYPE zapisany jako clob, a nie prawdziwy clob. Użycie funkcji getClobVal powoduje poprawę wyniku o 50% do 10 sekund dla 1000 wierszy. Ale jednocześnie programista Sql zwraca wyniki natychmiast, nie w 10 sekund.
Czy kiedykolwiek rozwiązałeś ten problem? Czy zarejestrowałeś żądanie wsparcia u dostawcy? –