Могу ли я выполнить запрос к произвольному подмножеству таблицы, чтобы ускорить запрос - PullRequest
0 голосов
/ 27 марта 2020

У меня есть программа, которая читает файл и записывает данные о файле в таблицу. Что-то пошло не так с программой, и у меня есть 215 728 403 строк, где я ожидаю только 2-3 миллиона. Я пытаюсь выяснить проблему и хочу посмотреть на стол. Я подозреваю, что есть много повторяющихся записей, но запрос этой таблицы занимает очень много времени (пусть выполняется в течение 1 часа без результатов по следующему запросу):

select * from table ou
where (select count(*) from table inr
where inr.dieoffset = ou.dieoffset) > 1

Смогу ли я запустить это на первых 10 000 000 строк без снижения производительности и как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Есть ли у вас индекс для ускорения запросов?

Чтобы найти дублоны, вы можете использовать группу следующим образом:

SELECT   COUNT(*) AS nbr_doublon, champ1, champ2, champ3
FROM     table
GROUP BY champ1, champ2, champ3
HAVING   COUNT(*) > 1

Если вы хотите сделать это для подмножества:

SELECT   COUNT(*) AS nbr_doublon, champ1, champ2, champ3
FROM     (SELECT * from table limit 100000)
GROUP BY champ1, champ2, champ3
HAVING   COUNT(*) > 1
0 голосов
/ 27 марта 2020

Вы можете просто использовать limit:

select *
from ou
limit 1000

Без order by, это должно быстро прочитать произвольный набор строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...