Конечно, у Oracle есть таблицы метаданных, которые вы можете использовать для получения имен столбцов, например, таблица sysibm.syscolumns
в DB2?
И после быстрого веб-поиска это выглядит так: см. ALL_TAB_COLUMNS
.
Я бы использовал их вместо того, чтобы перейти к реальной таблице, что-то вроде (не проверено):
SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = "MYTABLE"
ORDER BY COLUMN_NAME;
Если вы одержимы желанием выяснить, почему ваш запрос медленный, вам следует вернуться к стандартному методу: попросить вашу СУБД объяснить план выполнения запроса для вас. Для Oracle см. Раздел 9 этого документа .
В Ask Tom - Oracle
есть разговор, который, кажется, предполагает, что номера строк создаются после фазы выбора, что может означать, что запрос все равно извлекает все строки. explain
, вероятно, поможет установить это. Если он содержит FULL
без COUNT STOPKEY
, то это может объяснить производительность.
Кроме того, мои знания специфики Oracle уменьшаются, и вам придется анализировать explain
дальше.