2014-02-10 3 views
1

У меня есть база данных с более чем 50 миллионами записей. Мне нужно запросить около 2000 конкретных, но несвязанных записей.Запросить большое количество записей

Есть ли способ сделать это, не набирая каждый уникальный ключ? т. е. цикл, считывающий их из внешнего файла? Я не эксперт по SQL, поэтому мое мышление связано с перспективой программирования.

Отвечая на вопросы ниже: Это уникальные записи. Я использую Oracle. Сейчас это одно время, но это может стать обычным явлением.

У меня возникла идея использовать vi для редактирования текстового файла и сделать 2000 «select ID from table» - это сценарий. Однако я хотел чего-то менее «грубой силы».

+0

SQL Server 'SELECT TOP 2000', чтобы получить« случайные »2000 записей, обратите внимание, что« случайный »на самом деле не случайный. –

+1

Возможный дубликат [Как запросить случайную строку в SQL?] (Http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) –

+1

Вы должны предоставить нам гораздо больше информации о *, которые * 2000 записей вы хотите. У вас есть ключи, и вы хотите получить доступ к этим * конкретным записям? Или вы просто хотите получить 2000? Откуда взялись идентификаторы 2000 года? Можете ли вы воспроизвести один и тот же набор записей с конкретным запросом? – meagar

ответ

0

Это что-то, что вы делаете регулярно, или это одноразовое явление? Если это одноразовая вещь, я бы просто подготовить длинный запрос в Vim, присоединившись все идентификаторы запятыми, и вставить их в единую «в» пункта:

select * from my_table where id in (1, 2, 3, 4, ..., 1998, 1999, 2000) 

Это зависит от вашей базы данных в состоянии для обработки относительно длинных запросов.

Смежные вопросы