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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

....
stax

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

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

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

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

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

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

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

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

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

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

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

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


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


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