Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

База данни, която може да обработва>500 милиона реда

MSSQL може да се справи добре с толкова много редове. Времето на заявката зависи изцяло от много повече фактори, отколкото просто броя на редовете.

Например, това ще зависи от:

  1. колко присъединявания правят тези заявки
  2. колко добре са настроени вашите индекси
  3. колко овен има в машината
  4. скорост и брой процесори
  5. тип и скорост на шпиндела на твърдите дискове
  6. размер на реда/количеството данни, върнати в заявката
  7. Скорост/закъснение на мрежовия интерфейс

Много е лесно да имате малка (по-малко от 10 000 реда) таблица, която ще отнеме няколко минути за изпълнение на заявка. Например, като се използват много обединявания, функции в клаузата where и нулеви индекси на процесор Atom с 512MB обща памет.;)

Отнема малко повече работа, за да се уверите, че всички ваши индекси и връзки с външни ключове са добри, че вашите заявки са оптимизирани, за да елиминират ненужните извиквания на функции и да връщат само данните, от които всъщност се нуждаете. Освен това ще ви трябва бърз хардуер.

Всичко се свежда до това колко пари искате да похарчите, качеството на екипа на разработчиците и размера на редовете с данни, с които работите.

АКТУАЛИЗИРАНЕ Актуализиране поради промени във въпроса.

Количеството информация тук все още не е достатъчно, за да даде реален отговор. Просто ще трябва да го тествате и да коригирате дизайна и хардуера на вашата база данни, ако е необходимо.

Например, много лесно бих могъл да имам 1 милиард реда в таблица на машина с тези спецификации и да изпълня заявка "select top(1) id from tableA (nolock)" и да получа отговор за милисекунди. По същия начин можете да изпълните заявка „select * from tablea“ и това ще отнеме известно време, защото въпреки че заявката се изпълнява бързо, прехвърлянето на всички тези данни по кабела отнема известно време.

Въпросът е, че трябва да тествате. Което означава да настроите сървъра, да създадете някои от вашите таблици и да ги попълните. След това трябва да преминете през настройка на производителността, за да получите правилните заявки и индекси. Като част от настройката на производителността ще разкриете не само как трябва да се преструктурират заявките, но и какви точно части от машината може да се наложи да бъдат заменени (т.е.:диск, повече RAM, процесор и т.н.) въз основа на заключването и видове чакане.

Горещо ви препоръчвам да наемете (или договорите) един или двама администратори на база данни, които да направят това вместо вас.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите разлика между два реда за поле на колона?

  2. Примери за форматиране на „datetimeoffset“ в SQL Server с помощта на стандартни форматни низове (T-SQL)

  3. как да конфигурирате конфигурационния файл за хибернация за sql сървър

  4. Как да генерирате скриптове за добавяне на ограничения по подразбиране към колона в множество таблици в база данни на SQL Server - SQL Server / TSQL Урок, част 94

  5. Функция за разделяне в SQL Server 2008