Има ли поръчка по в заявката? 10K редове са доста, ако трябва да се сортират.
Освен това извличането на PK не е справедлив тест спрямо извличането на целия CLOB. Oracle съхранява редовете на таблицата с вероятно много в блок, но всеки от CLOB (ако са> 4K) ще се съхранява извън линия, всеки в поредица от блокове. Следователно сканирането на списъка с PK ще бъде бързо. Освен това вероятно има индекс на PK, така че Oracle може просто бързо да сканира индексните блокове и дори да няма достъп до таблицата.
4 секунди наистина изглеждат малко високи, но това са 2MB, които трябва да могат да бъдат прочетени от диска и транспортирани по мрежата до вашата Java програма. Мрежата може да е проблем. Ако извършите SQL проследяване на сесията, то ще ви насочи точно къде е изразходвано времето (четене на диск или мрежа).