|
|
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Цель быстро подсчитать реальное количество всех строк в БД. Вариант с num_rows from dba_tables , не подходит - нужно собирать статистику. Хинт parallel или что-то типа dbms_parrallel тоже не предлагать. Какие еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:00 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusреальное количество всех строк в БД… никому нафиг не нужно, даже приблизительное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:05 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzus, пока ты читаешь результат запроса, количество строк может измениться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:08 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Elicmurzusреальное количество всех строк в БД… никому нафиг не нужно, даже приблизительное. Не скажи, только 2 дня назад выполняли подобную идиотскую просьбу вендора =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:10 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Добавить PK на таблицу, желательно по одному небольшому полю, если уже есть и скорость подсчета count не удовлетворяет то удовлетвориться этой скоростью либо использовать приблизительное значение (к примеру те же num_rows). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:18 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Taciturn12, Гранты только селективные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:21 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Taciturn12, авторЦель быстро подсчитать реальное количество всех строк в БД . .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:24 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Stax, Или в таблицах БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzus, Странной желание посчитать все строки .... Если это единоразовый запрос - запустите на выходные. Если это на постоянке будет - думайте про Primary Key для всех таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzus, приблизительный каунт select 10 * count(*) from T sample block (10); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:36 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, "думайте про Primary Key для всех таблиц" -А можно подробнее? Есть таблицы без PK, создавать их - нет грантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:38 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:39 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXLmurzus, Странной желание посчитать все строки .... Если это единоразовый запрос - запустите на выходные. Если это на постоянке будет - думайте про Primary Key для всех таблиц зачем ПК (может і не быть) достаточно "not null" индекса если нет, напр create index i$t1 on t1(0); ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:49 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusMaximaXXL, "думайте про Primary Key для всех таблиц" -А можно подробнее? Есть таблицы без PK, создавать их - нет грантов. Я так понимаю нет грантов у Вас. И я почему то уверен что Вы знаете ДБА у которых все же есть доступ с правами на создание PK. т.о. Вы пишете на них письмо (или как Вы коммуницируетесь) где просите создать PK для (список таблиц и полей) и проанализировать последствия (вот даже не представляю что у Вас за база) добавления. В письме указываете для чего Вам понадобились эти PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:50 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
orcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается. имхо легенда ps пользую * ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:51 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXLmurzusMaximaXXL, "думайте про Primary Key для всех таблиц" -А можно подробнее? Есть таблицы без PK, создавать их - нет грантов. Я так понимаю нет грантов у Вас. И я почему то уверен что Вы знаете ДБА у которых все же есть доступ с правами на создание PK. т.о. Вы пишете на них письмо (или как Вы коммуницируетесь) где просите создать PK для (список таблиц и полей) и проанализировать последствия (вот даже не представляю что у Вас за база) добавления. В письме указываете для чего Вам понадобились эти PK. как для чего, для подсчета к-ва записей по совету MaximaXXL .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 10:53 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Staxкак для чего, для подсчета к-ва записей по совету MaximaXXL .... stax ну не сам же ТС придумал себе задачу строки считать хотя и такие бывают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:01 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Кроме индексов ничего нет?( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:08 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, у меня первый скрипт с dbms_sql был подсчет строк в таблицах схемы (сам придумал) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:09 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
РК зачем городить? Можно обойтись rowid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:19 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
FogelРК зачем городить? Можно обойтись rowidА ты сравни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:24 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusКроме индексов ничего нет?( в чем проблема? долго? как часто считаете? СВО сам разберется где есть индекс - по нему посчитает, где нет - фулл скан таблицы можно хинт index/index_ffs указать, но надо ли ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:25 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
FogelРК зачем городить? Можно обойтись rowid Так,так... А можно подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusFogelРК зачем городить? Можно обойтись rowid Так,так... А можно подробнее? зачем Вам ПК, ровид, достаточно fbi константы (напр 0) и права на создание индексов ps я ж привел пример ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:31 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
orcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается. Где все? Elic? Фотошоп? Анонимус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:41 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
подстрекательorcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается. Где все? Elic? Фотошоп? Анонимус? count(поле) результат от */0 может отличатся, да и производительность тоже ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:44 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Stax, a count(*) от count(1)? Не поленись, проведи говноработу как обычно. И приложи сравнение. Защитник ты наш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:46 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Stax, Хотел узнать все варианты для ридонли . create fbi по всем таблицам требует прав и лишних ресурсов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:47 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusFogelРК зачем городить? Можно обойтись rowid Так,так... А можно подробнее? пример реализации идеи (среды нет под рукой, пишу в блокноте из горящего танка ): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Если таблицы от десятков миллионов строк и больше, набор в курсоре делите ещё на партиции/субпартиции - несмотря на увеличение кол-ва операций суммарно будет быстрее. как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:53 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
подстрекательorcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается. Где все? Elic? Фотошоп? Анонимус?Очень тухлый вброс. Нет огонька. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:54 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, извини. Я должен лучше вбрасывать. Попробую в другой теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 11:56 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
подстрекатель, Речь не про тебя, а про ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:10 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. конечно, это будет незнамо_что, враки, но каков вопрос.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:16 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
orawishконечно, это будет незнамо_что, враки, но каков вопрос..Уверен, что дочитал его до конца?murzusВариант с num_rows from dba_tables , не подходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:18 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
stax..Stax, a count(*) от count(1)? Не поленись, проведи говноработу как обычно. И приложи сравнение. Защитник ты наш. кого защитник? почему Ваш? зачем мне сравнение, я пользую * ps неужели Вам так принципиально постить под ником stax..? .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:24 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Elic..Уверен, что дочитал его до конца?.. и действительно, упс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 12:25 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
а на какой момент времени сабж? Где консистентность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 13:22 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Fogel Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Неверно. Если в БД меняется количество строк то результат не будет соответствовать ни одному состоянию БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 13:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
XMLerFogel Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Неверно. Если в БД меняется количество строк то результат не будет соответствовать ни одному состоянию БД. можно в начало блока добавить дату для фиксации и считать всё на scn по ней. так будет кол-во на определённый момент времени. ТС именно это вроде и хотел. я описал идею, а подробности уже зависят от конкретики требований и рабочей среды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 13:33 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
XMLerНеверно. Если в БД меняется количество строк то результат не будет соответствовать ни одному состоянию БД.Положи руку на сердце и скажи, какая нахрен разница, что бессмысленная цифра имеет точность плюс-минус лапоть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 13:51 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
XMLerFogel Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Неверно. Если в БД меняется количество строк то результат не будет соответствовать ни одному состоянию БД. перед пересчетом set read only (ето если не одним запросом) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 14:03 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Fogelmurzusпропущено... Так,так... А можно подробнее? пример реализации идеи (среды нет под рукой, пишу в блокноте из горящего танка ): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Если таблицы от десятков миллионов строк и больше, набор в курсоре делите ещё на партиции/субпартиции - несмотря на увеличение кол-ва операций суммарно будет быстрее. как-то так. Т.е. хотите сказать, что "select count(rowid) from t "быстрее чем "select count(*) from t?" Так разве не тоже самое будет?: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 18:42 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzus Т.е. хотите сказать, что "select count(rowid) from t "быстрее чем "select count(*) from t?" Так разве не тоже самое будет?: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. я "сказал", что PK для данной задачи городить незачем, когда есть rowid "то же самое" или не "то же самое" - сверьте сами, если интересно. моё личное мнение: на ооооооооооооочень больших наборах данных (в том числе в объёме учитывается и как хранятся типы данных: 5 колонок number все равно меньше одной колонки varchar2) rowid выигрывает, на небольших наборах, если тип данных занимает мало место для хранения, то * выиграет из-за отсутствия накладных расходов на получение rowid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 20:11 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Fogelкогда есть rowidну, а если его нет? Fogelнакладных расходов на получение rowidрасходы можно и не накладывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2017, 21:18 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Fogelя "сказал", что PK для данной задачи городить незачем, когда есть rowid "то же самое" или не "то же самое" - сверьте сами, если интересно. моё личное мнение: на ооооооооооооочень больших наборах данных (в том числе в объёме учитывается и как хранятся типы данных: 5 колонок number все равно меньше одной колонки varchar2) rowid выигрывает, на небольших наборах, если тип данных занимает мало место для хранения, то * выиграет из-за отсутствия накладных расходов на получение rowid Вы просто не поняли, зачем PK. Индекс обычно значительно меньше, чем таблица, поэтому его целиком будет прочитать быстрее. С rowid это не прокатит. Звезда в каунте не расшифровывается до списка столбцов, как минимум, когда есть индекс по not null полю - это легко проверить посмотрев на план запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 09:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
ElicXMLerНеверно. Если в БД меняется количество строк то результат не будет соответствовать ни одному состоянию БД.Положи руку на сердце и скажи, какая нахрен разница, что бессмысленная цифра имеет точность плюс-минус лапоть?может, у них на это SLA заточен, и всякие EditDA количество созданных строк в день ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2017, 14:12 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Боюсь сама конструкция count(*) не оптимальна, правильнее выбрать некое поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2017, 10:06 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
euproБоюсь сама конструкция count(*) не оптимальна, правильнее выбрать некое поле.select поле from таблица и подсчитывать количество строк на калькуляторе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2017, 12:51 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Да что ж такое, сколько уже можно поддерживать древние ошибочные мифы! Нет никакого смысла заменять count(*) на count(1), count(любое_не_NULL_поле), count(поле_первичного_ключа), count(rowid) и прочие фантазии, т.к.: 1. count(*) и так уже оптимален: он просто считает строки! Ему не нужны все поля и, уж тем более, он их ни с чем не сравнивает. Оракл сам выберет что лучше: фулсканить ли таблицу или фастфулсканить какой-нибудь индекс и если - да, то какой, но это, естественно, при условии что вы не меняли дефолтные параметры (например, занижение optimizer_index_cost_adj может привести к index full scan вместо index fast full scan) 2. У Оракла есть трансформация "Count(col) to Count(*) (CNT)", которая превращает count(0), count(1), count(любое_поле) в count(*). Так что реально в таких случаях оракл перепишет ваш запрос на count(*). Эту трансформацию ораклу как раз пришлось разработать из-за таких дурацких мифов, чтобы эти извращенные запросы работали так же эффективно как и count(*). 3. Даже если вы извратились еще больше и написали count(-1) или count(rowid) (они не входят в "special cases" из п.2), то даже в этом случае оракл все равно построит тот же план что и для count(*) Это же уже многократно объяснялось... Вот в очередной раз у Льюиса: https://jonathanlewis.wordpress.com/2015/01/06/count-4/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2017, 14:43 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
ElicXMLerНеверно. Если в БД меняется количество строк то результат не будет соответствовать ни одному состоянию БД.Положи руку на сердце и скажи, какая нахрен разница, что бессмысленная цифра имеет точность плюс-минус лапоть? Никакой. Окажись я на месте ТСа ответил бы 4378823478969123469. Пусть проверяют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 10:36 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
XMLerНикакой. Окажись я на месте ТСа ответил бы 4378823478969123469. Пусть проверяют. Ну разница eсть. Пример. Разработчики тестируют Informatica workflow. Лог показывает чтение source идет со скоростью N строк в секунду. Это хорошо или плохо? Не зная числа строк в production source мы не можем эстраполировать время выполнения workflow в production. Так-что приходится давать разработчикам числo строк. Правда микроны тут не нужны и NUM_ROWS от dbms_stats вполне достаточно. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 13:41 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SY, Но это обычно для 1-10 таблиц, а не для всей базы. 10-ки таблиц справочники с устоявшимся набором данных и число ВСЕХ строк в таблицах величина абстрактная но никому не нужная =(. Во всяком случае я не могу себе придумать задачу где мне такое может понадобиться. И что делать с вьюхами - ума не приложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 14:21 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SYXMLerНикакой. Окажись я на месте ТСа ответил бы 4378823478969123469. Пусть проверяют. .. приходится давать разработчикам числo строк. Правда микроны тут не нужны и NUM_ROWS от dbms_stats вполне достаточно. SY. Это если статистика собирается, а если разница count(*) vs NUM_ROWS >100K то не достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 15:47 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusЭто если статистика собирается, а если разница count(*) vs NUM_ROWS >100K то не достаточно. А что мешает больше ресурсов выделять на сбор статистики? Что count постоянный гонять, что это, а от статистики может еще какая польза будет. Ну или вред. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:01 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusЭто если статистика собирается, а если разница count(*) vs NUM_ROWS >100K то не достаточно. А это зависит от COUNT(*). Разница в 100K для таблицы в 100M роли не играет а вот для таблицы в 1M да, и если у тебя по такой растущей таблице статистика не сибирается то у тебя похоже куда больше проблем чем счет строк. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:03 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевmurzusЭто если статистика собирается, а если разница count(*) vs NUM_ROWS >100K то не достаточно. А что мешает больше ресурсов выделять на сбор статистики? Что count постоянный гонять, что это, а от статистики может еще какая польза будет. Ну или вред. :) Маэмо, що маэмо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:21 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SYmurzusЭто если статистика собирается, а если разница count(*) vs NUM_ROWS >100K то не достаточно. А это зависит от COUNT(*). Разница в 100K для таблицы в 100M роли не играет а вот для таблицы в 1M да, и если у тебя по такой растущей таблице статистика не сибирается то у тебя похоже куда больше проблем чем счет строк. SY. Это был пример, таблиц куча , и разница не устраивает. Вы пытаетесь помочь решить задачу организационно, но цель топика найти техническое решение. Задача если что уже решена, хотел просто узнать -может кто-то уже сталкивался и как-то ускорил. Но пока ничего нет, кроме как считать индексы или методы типа бить таблицу и считать параллельно(мэп-редьюс). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 16:31 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Да ради бога: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2017, 19:55 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
orcl_1989Вариант с count(*) в oracle самый медленный, лучше использовать count(1) - я предпочитаю, хотя по производительности от count(ID) и count(поле) сильно не отличается. Между count(1) и count(*) нет разницы. Вот статья от Кайта: https://asktom.oracle.com/pls/apex/f?p=100:11:1337911574066::NO::P11_QUESTION_ID:1156159920245 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 16:58 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusЭто был пример, таблиц куча , и разница не устраивает. Вы пытаетесь помочь решить задачу организационно, но цель топика найти техническое решение. Задача если что уже решена, хотел просто узнать -может кто-то уже сталкивался и как-то ускорил. Но пока ничего нет, кроме как считать индексы или методы типа бить таблицу и считать параллельно(мэп-редьюс). Ну еще вариант, завести регистровую таблицу с двумя столбцами (имя таблицы, кол-во строк) и прицепить к каждой таблице а БД триггер, который при инсерте будет инкременировать, при делите декрементировать кол-во в строке рестровой таблицы для соответствующей таблицы. Тогда простой селект по регистровой таблице будет мгновенно давать результат :) Но с правами только на селект не получится, разумеется. И это изврат, имхо. А все-таки какова была цель у этой задачи? Для чего это было нужно, если не секрет? И каково было таинственное уникальное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 17:11 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
mishgaНу еще вариант, завести регистровую таблицу с двумя столбцами (имя таблицы, кол-во строк) и прицепить к каждой таблице а БД триггер, который при инсерте будет инкременировать, при делите декрементировать кол-во в строке рестровой таблицы для соответствующей таблицы.Открой для себя dba_tab_modifications, велосипедостроитель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 17:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
mishgaНу еще вариант, ... и все станут в очередь за номерком ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 17:30 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
dba_tab_modification я бы сказал неоднозначная штука. там без явного DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO она не то чтобы мгновенно обновляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 18:07 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
mishgaприцепить к каждой таблице а БД триггер Фи. Триггер может быть тихо отключен (как явно, так и в ходе direct-операции), после чего данные в "реестре" потеряют адекватность, никому ничего не сказав. Если уж очень хочется извратиться - слепите доменный индекс или агрегатное мат. вью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 18:31 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Shtockdba_tab_modification я бы сказал неоднозначная штука. там без явного DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO она не то чтобы мгновенно обновляется.Неоднозначно то, что для минимизации дополнительных издержек надо идти на компромиссы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2017, 19:04 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Важно, чтобы топикстартер видел эти компромиссы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 10:21 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
mishgaНу еще вариант, завести регистровую таблицу с двумя столбцами (имя таблицы, кол-во строк) и прицепить к каждой таблице а БД триггер, который при инсерте будет инкременировать, при делите декрементировать кол-во в строке рестровой таблицы для соответствующей таблицы. Тогда простой селект по регистровой таблице будет мгновенно давать результат :) Но с правами только на селект не получится, разумеется. И это изврат, имхо. А все-таки какова была цель у этой задачи? Для чего это было нужно, если не секрет? И каково было таинственное уникальное решение? А все-таки какова была цель у этой задачи? - посчитать кол-во строк. Для чего это было нужно, если не секрет? -для расчета ресурсов. И каково было таинственное уникальное решение? - Никакого уникального, loop + execute immediate + count(*). Это долго отсюда и вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 10:53 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Shtockdba_tab_modification я бы сказал неоднозначная штука. там без явного DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO она не то чтобы мгновенно обновляется. Тоже не подходит, нужно считать по факту, без затей и всяких "ловушек" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 10:56 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzus Для чего это было нужно, если не секрет? -для расчета ресурсов. А, извините, ресурсов чего? Если у меня таблица из 2 ID колонок - 10 млн строк и таблица с CLOB в 10 млн строк это разные ресурсы, как по мне, хоть и ответ одинаковый 10 млн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 11:17 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXLmurzus Для чего это было нужно, если не секрет? -для расчета ресурсов. А, извините, ресурсов чего? Если у меня таблица из 2 ID колонок - 10 млн строк и таблица с CLOB в 10 млн строк это разные ресурсы, как по мне, хоть и ответ одинаковый 10 млн.Да ему до фонаря. Кретин задачу поставил - дебил задачу исполнил. Дальше хоть трава не расти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 11:20 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXLхоть и ответ одинаковый 10 млн.Пока считается каунт, пока считаются ресурсы по результатам каунтов, пока по результатам расчетов ... что-то предпринимается, строк у же не одинаково - в одной таблице 10000001, а в другой 9999999 строк. Бегом пересчитывать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 11:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
однако за время пути собака ...Пока считается каунт, пока считаются ресурсы по результатам каунтов, пока по результатам расчетов ... что-то предпринимается, строк у же не одинаково - в одной таблице 10000001, а в другой 9999999 строк. Бегом пересчитывать! если где-то удалилась запись, значит в какой-нибудь таблице она добавилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 11:39 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SYДа ради бога: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. SY. SY по скорости одинаково, но уже одним select-ом . Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 17:38 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousагрегатное мат. вью. UNION ALL C Триггерами тоже забавно. Давайте тогда уже берите Кафку и стримьте дельту в Хадуп и будет реалтайм но латенси каунт :) (Хотя некоторые ентерпрайзы и не до такого додумываются) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 01:09 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusSYДа ради бога: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. SY. SY по скорости одинаково, но уже одним select-ом . Спасибо. Насчет одного селекта, вроде бы и правильно, но улыбает =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 09:55 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
AlexFF__|murzusпропущено... SY по скорости одинаково, но уже одним select-ом . Спасибо. Насчет одного селекта, вроде бы и правильно, но улыбает =) А что улыбает? Хоть что-то удалось выудить из кучи лирики и вопросов на вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 10:41 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusAlexFF__|пропущено... Насчет одного селекта, вроде бы и правильно, но улыбает =) А что улыбает? Тебе селект в параметрах dbms_xmlgen‘а ни на что не намекает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 10:57 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
проходил мимо...murzusпропущено... А что улыбает? Тебе селект в параметрах dbms_xmlgen‘а ни на что не намекает? Ну тот-же count(*) , я не понял что вызвало улыбку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 11:04 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusя не понял что вызвало улыбку. понимание улыбающимся количества этих селектов. murzusSY по скорости одинаково, но уже одним select-ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 11:09 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
[quot проходил мимо...]murzusя не понял что вызвало улыбку. понимание улыбающимся количества этих селектов. Да понял я сколько там селектов, я тестировал на схеме с 50 таб. Про один селект, я говорил что не нужно ПЛСКЛ анонимный блок писать с лупом Мне вот не смешно, что один ответ из всех комментов, и то не решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 12:06 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
AlexFF__|murzusпропущено... SY по скорости одинаково, но уже одним select-ом . Спасибо. Насчет одного селекта, вроде бы и правильно, но улыбает =) и правильно улыбнуло к-во будет посчитано не на момент старта селекта, а когда доберется до нужной таблицы если грубо то результат будет не согласован ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 12:27 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
StaxAlexFF__|пропущено... Насчет одного селекта, вроде бы и правильно, но улыбает =) и правильно улыбнуло к-во будет посчитано не на момент старта селекта, а когда доберется до нужной таблицы если грубо то результат будет не согласован ..... stax Откуда у вас информация что не будет согласован? Кто вообще сказал что там будут меняться данные? Давайте абстрагируемся - пусть БД будет вообще простаивающая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 13:26 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusОткуда у вас информация что не будет согласован? Кто вообще сказал что там будут меняться данные? Давайте абстрагируемся - пусть БД будет вообще простаивающая. мож я неправильно выразился под несогласованностью я я имелл ввиду, что если за время со старта и до начала count(*) конкретной таблички к-во строк в ней (табличке) поменяется (с коммит) то ето будет учтено count(*) будет посчитан на момент старта SELECT COUNT(*) CNT ..., а не на момент SELECT OWNER, ... конечно если "БД будет вообще простаивающая" то получим согласованный результат ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 13:55 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Stax конечно если "БД будет вообще простаивающая" то получим согласованный результат ...... stax Получим стечение обстоятельств, такое же как и X залилось X удалилось. murzus А что улыбает? Хоть что-то удалось выудить из кучи лирики и вопросов на вопрос. Я бы сказал по другому, люди хотели понять зачем чтоб предложить решение. Похоже на одно "молодое дарование" которое доказывало мне что SQL убогий язык потому что не может суммировать 2 поля типа Date. А на вопрос: А зачем их суммировать? В чем смысл? Говорил: -Ну я так хочу, а он не может. Посему я думаю что многие хотели Вам помочь, предложить оптимальное решение, но не могли понять для чего это надо ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 14:40 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, А ты не молодое дарование? По впечатлением примерно в прошлом году закончил универ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 14:55 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, А чем, извините, навеяно такое впечатление? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 15:03 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, судя по стилю судя по желанию помогать всем немощным, не способным польвоваться поиском, и писать тривиальные запросы тыщу раз написанные судя по тому, что есть определенные способности, но техника еще не отшлифована и проч Я могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 15:16 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopMaximaXXL, судя по стилю судя по желанию помогать всем немощным, не способным польвоваться поиском, и писать тривиальные запросы тыщу раз написанные судя по тому, что есть определенные способности, но техника еще не отшлифована и проч Я могу ошибаться. Можно сразу было указать немощному вариант (иди в поиск, или учись писать запросы)? Зачем засорять эфир и тратить время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 16:14 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusМожно сразу было указать немощному вариант (иди в поиск, или учись писать запросы)? Зачем засорять эфир и тратить время?Я стараюсь не отвечать, если пациент необучаем, но иногда таки влезаю в топик, как сделал в этом случае. Каюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 16:35 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopmurzusМожно сразу было указать немощному вариант (иди в поиск, или учись писать запросы)? Зачем засорять эфир и тратить время?Я стараюсь не отвечать, если пациент необучаем, но иногда таки влезаю в топик, как сделал в этом случае. Каюсь. И как вы определяете, что пациент не обучаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 16:53 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusdbms_photoshopпропущено... Я стараюсь не отвечать, если пациент необучаем, но иногда таки влезаю в топик, как сделал в этом случае. Каюсь. И как вы определяете, что пациент не обучаем?Я думаю мыслящий человек способен был бы в гугле написать хотя бы oracle count from, потом походить по ссылкам и понять что все уже обсуждено тыщу раз. При наличии минимального мышления человек мог бы упростить задачу. Есть текстовый файл, можно ли посчитать число пробелов (или ,например, переносов строк) не читая весь файл. Ответ был бы - можно если один раз это число сохранить во вспомогательной структуре и потом поддерживать при изменениях в файле. Ну и так далее, если вопрос примитивен, тыщу раз обсуждаля и легко гуглится, то ТС скорее всего необучаем. С другой стороны понятно что всегда будут утверждающие что count(*) быстрее count(1) или наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 17:03 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
MaximaXXLStaxконечно если "БД будет вообще простаивающая" то получим согласованный результат ...... stax Получим стечение обстоятельств, такое же как и X залилось X удалилось. murzus А что улыбает? Хоть что-то удалось выудить из кучи лирики и вопросов на вопрос. Я бы сказал по другому, люди хотели понять зачем чтоб предложить решение. Похоже на одно "молодое дарование" которое доказывало мне что SQL убогий язык потому что не может суммировать 2 поля типа Date. А на вопрос: А зачем их суммировать? В чем смысл? Говорил: -Ну я так хочу, а он не может. Посему я думаю что многие хотели Вам помочь, предложить оптимальное решение, но не могли понять для чего это надо ... Вы вероятно лучше поняли суть вопроса, чем дбмс_фотошоп, но все равно не до конца. Это нужно просто для того чтобы быстрее считать реальное количество строк в таблицах чем count(*) from table. Не знаю как еще проще объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 17:19 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusЭто нужно просто для того чтобы быстрее считать реальное количество строк в таблицах чем count(*) from table. Не знаю как еще проще объяснить.Подсчёт ради подсчета - это и есть необучаемость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 17:24 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
ElicmurzusЭто нужно просто для того чтобы быстрее считать реальное количество строк в таблицах чем count(*) from table. Не знаю как еще проще объяснить.Подсчёт ради подсчета - это и есть необучаемость. Профит во времени на больших базах. Переформулирую вопрос: нужно запрос который отработает быстрее чем select count(*) from table , и тоже вернет количество строк в таб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 17:33 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusПрофит во времени на больших базах. Переформулирую вопрос: нужно запрос который отработает быстрее чем select count(*) from table , и тоже вернет количество строк в таб.Что в лоб что по лбу: зацикленность на неправильно выбранном способе решения какой-то непонятной задачи да и ещё с претензией на всеобщность "задачи". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 17:39 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzus, будет здорово если укажете в своем резюме: считал количество строк во всех таблицах базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 19:10 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
murzusнужно запрос который отработает быстрее чем select count(*) from table Актуальную статистику и num_rows в dba_tables не предлагать. В чистом виде: - Штурман, приборы! - 42! - Что 42? - А что приборы? Что уж там мелочиться-то, обвешайте всю базу триггерами на after insert/delete on each row и truncate. Пусть каждый чих записывает +/- 1 или "признак сброса данных" в одну е#$эпическую таблицу. Потом практически одним sum() group by получите свой результат. Сударь, раскройте же уже общественности смысл этого "точного" подсчёта звёзд на небе и песчинок в океане! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 09:53 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
mishgaНу еще вариант, завести регистровую таблицу с двумя столбцами (имя таблицы, кол-во строк) и прицепить к каждой таблице а БД триггер Хм, уже предлагали. Не заметил при прошлом прочтении топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 09:56 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
envmishgaНу еще вариант, завести регистровую таблицу с двумя столбцами (имя таблицы, кол-во строк) и прицепить к каждой таблице а БД триггер Хм, уже предлагали. Не заметил при прошлом прочтении топика. Ну да, наплевать что INSERT/DELETE в любую таблицу будет сериализирован. Наплевать что deadlock пойдет. Зато count будет быстрый . SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 14:10 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SYНу да, наплевать что INSERT/DELETE в любую таблицу будет сериализирован. Наплевать что deadlock пойдет. Зато count будет быстрый .Соломон, складывается впечатление, что ты ржёшь не над потугами ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 14:20 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
ElicСоломон, складывается впечатление, что ты ржёшь не над потугами ТС.У Соломона американский менталитет, он русский юмор не всегда понимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 14:58 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
Теперь, когда murzus пишет count(*), у него дергается глаз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 15:50 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SYНу да, наплевать что INSERT/DELETE в любую таблицу будет сериализирован. Наплевать что deadlock пойдет. Зато count будет быстрый . SY. Поясните, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 17:23 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
mishgaПоясните, плиз. А что тут пояснять? Что будет если две сессии хотят обновить ту-же строку? Первая обновляет а вот вторая ждет пока первая не соизволит commit/rollback - вот и сериализация. A теперь первая обновляет строку X а вторая Y. Затем первая пытается обновить строку Y а вторая X получaeм deadlock. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 00:07 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
SYту-же строку?глядя со стороны приложения - ту же таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 07:18 |
|
||
|
Как ускорить select count(*) from table
|
|||
|---|---|---|---|
|
#18+
уточняторSYту-же строку?глядя со стороны приложения - ту же таблицу. А зря в корень - сериализация/deadlock произойдет из-за попытки обновить ту-же строку в "регистровой таблице". А вызвано это будет тригером другой таблицы или напрямую это детали. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 13:47 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1885148]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
105ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 398ms |

| 0 / 0 |
