powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как ускорить select count(*) from table
25 сообщений из 107, страница 1 из 5
Как ускорить select count(*) from table
    #39524656
murzus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цель быстро подсчитать реальное количество всех строк в БД.
Вариант с num_rows from dba_tables , не подходит - нужно собирать статистику.
Хинт parallel или что-то типа dbms_parrallel тоже не предлагать.
Какие еще варианты?
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524661
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murzusреальное количество всех строк в БД… никому нафиг не нужно, даже приблизительное.
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524662
ацид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
murzus,

пока ты читаешь результат запроса, количество строк может измениться.
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524665
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicmurzusреальное количество всех строк в БД… никому нафиг не нужно, даже приблизительное.
Не скажи, только 2 дня назад выполняли подобную идиотскую просьбу вендора =)
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524670
Taciturn12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавить PK на таблицу, желательно по одному небольшому полю, если уже есть и скорость подсчета count не удовлетворяет то удовлетвориться этой скоростью либо использовать приблизительное значение (к примеру те же num_rows).
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524672
murzus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Taciturn12,

Гранты только селективные
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524675
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Taciturn12,

авторЦель быстро подсчитать реальное количество всех строк в БД .

....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524677
murzus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

Или в таблицах БД
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524678
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murzus,

Странной желание посчитать все строки ....
Если это единоразовый запрос - запустите на выходные.
Если это на постоянке будет - думайте про Primary Key для всех таблиц
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524682
pihel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
murzus,

приблизительный каунт

select 10 * count(*) from T sample block (10);
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524685
murzus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaximaXXL,
"думайте про Primary Key для всех таблиц" -А можно подробнее?
Есть таблицы без PK, создавать их - нет грантов.
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524686
orcl_1989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается.
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524692
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLmurzus,

Странной желание посчитать все строки ....
Если это единоразовый запрос - запустите на выходные.
Если это на постоянке будет - думайте про Primary Key для всех таблиц
зачем ПК (может і не быть) достаточно "not null" индекса

если нет, напр create index i$t1 on t1(0);

.....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524693
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murzusMaximaXXL,
"думайте про Primary Key для всех таблиц" -А можно подробнее?
Есть таблицы без PK, создавать их - нет грантов.

Я так понимаю нет грантов у Вас. И я почему то уверен что Вы знаете ДБА у которых все же есть доступ с правами на создание PK.
т.о. Вы пишете на них письмо (или как Вы коммуницируетесь) где просите создать PK для (список таблиц и полей) и проанализировать последствия (вот даже не представляю что у Вас за база) добавления. В письме указываете для чего Вам понадобились эти PK.
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524694
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается.
имхо легенда

ps
пользую *
.....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524695
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLmurzusMaximaXXL,
"думайте про Primary Key для всех таблиц" -А можно подробнее?
Есть таблицы без PK, создавать их - нет грантов.

Я так понимаю нет грантов у Вас. И я почему то уверен что Вы знаете ДБА у которых все же есть доступ с правами на создание PK.
т.о. Вы пишете на них письмо (или как Вы коммуницируетесь) где просите создать PK для (список таблиц и полей) и проанализировать последствия (вот даже не представляю что у Вас за база) добавления. В письме указываете для чего Вам понадобились эти PK.
как для чего, для подсчета к-ва записей по совету MaximaXXL

....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524702
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxкак для чего, для подсчета к-ва записей по совету MaximaXXL

....
stax

ну не сам же ТС придумал себе задачу строки считать хотя и такие бывают
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524714
murzus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроме индексов ничего нет?(
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524715
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXL,

у меня первый скрипт с dbms_sql был подсчет строк в таблицах схемы (сам придумал)

.....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524724
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РК зачем городить?
Можно обойтись rowid
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524726
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FogelРК зачем городить?
Можно обойтись rowidА ты сравни
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524728
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murzusКроме индексов ничего нет?(

в чем проблема? долго? как часто считаете?

СВО сам разберется
где есть индекс - по нему посчитает, где нет - фулл скан таблицы

можно хинт index/index_ffs указать, но надо ли

.....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524729
murzus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FogelРК зачем городить?
Можно обойтись rowid

Так,так...
А можно подробнее?
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524736
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
murzusFogelРК зачем городить?
Можно обойтись rowid

Так,так...
А можно подробнее?

зачем Вам ПК, ровид, достаточно fbi константы (напр 0) и права на создание индексов

ps
я ж привел пример

.....
stax
...
Рейтинг: 0 / 0
Как ускорить select count(*) from table
    #39524744
orcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается.


Где все? Elic? Фотошоп? Анонимус?
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 1 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как ускорить select count(*) from table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]