Рекомендуемый тип базы данных для обработки миллиарда записей - PullRequest
0 голосов
/ 01 сентября 2011

Я начал работать в проекте, который должен повторно использовать старую базу данных Microsoft SQL Server 2008, в которой есть таблица с более чем 7 000 000 записей.

Запросы к этой таблице в последние минуты, и мне было интересно, если другой типбазы данных (т.е. не реляционной) было бы лучше справиться с этим.

Что вы рекомендуете?В любом случае, есть ли способ улучшить производительность реляционной базы данных?

Спасибо

ОБНОВЛЕНИЕ:

Я использую Navicat для выполненияэтот простой запрос:

SELECT DISTINCT [NROCAJA]
FROM [CAJASE]

, поэтому сложные вещи и подзапросы не являются проблемой.Мне также было интересно, была ли проблема с отсутствием индексов, но таблица, похоже, проиндексирована:

Index description of CAJASE table

EPIC FAIL:

База данных была на удаленном сервере !!На самом деле запрос занимает 5 секунд (я все еще думаю, что много времени, но теперь проблема в другом).99% прошедшего времени составляли передачи по сети.В любом случае, спасибо за ваши ответы:)

Ответы [ 3 ]

3 голосов
/ 01 сентября 2011

7 миллионов - это крошечная база данных для SQL Server, которая легко обрабатывает терабайты данных с правильным дизайном.Вероятно, у вас плохой дизайн в сочетании с отсутствующими индексами в сочетании с плохим аппаратным обеспечением в сочетании с плохо выполняемыми запросами.Не обвиняйте некомпетентность ваших разработчиков баз данных в SQL Server.

2 голосов
/ 01 сентября 2011

Профилируйте ваши запросы - 7 миллионов записей - это не так уж много, поэтому есть вероятность, что вам не хватает индекса или вы выполняете сложные подзапросы, которые не работают так хорошо, как шкалы набора данных.не думайте, что вам нужно перестроить всю систему.

0 голосов
/ 01 сентября 2011

Факт, что вы выбираете «отличный», может быть проблемой.Может быть, переместить эти отдельные значения в свою таблицу, чтобы избежать дублирования.

...