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

Разделяне по години спрямо отделни таблици с имена Data_2011, Data_2010 и т.н.

От вътрешна гледна точка методите са по същество едни и същи.

Зад кулисите, когато създавате базиран на дата дял, SQL машината създава отделни физически таблици за всеки дял, след което прави това, което основно е UNION когато правите заявка към самата таблица.

Ако използвате филтър в заявката си за разделената таблица, която съответства на вашето поле за разделяне (DateField да кажем), тогава двигателят може да отиде директно до дяла, от който се нуждаете за данните. Ако не, тогава той търси всяка физическа таблица в логическата таблица, както е необходимо, за да завърши заявката.

Ако вашите заявки ще включват филтър за дата (което звучи, че ще включва от вашия въпрос), тогава не мога да се сетя за предимство на вашия „персонализиран“ метод.

По същество изборът, който трябва да направите, е искате ли да носите отговорност за всички логически и ъглови случаи, включени в разделянето, или да се доверите на разработчиците в Microsoft, които правят това от десетилетия, за да го направят вместо вас?

За моите собствени цели, ако има вградена рамка за нещо, което искам да направя, винаги се опитвам да я използвам. То е неизменно по-бързо, по-стабилно и по-малко податливо на грешки от решението „превъртете сами“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заместващ знак на число в SQL Server

  2. Настройката на SMO ConnectionContext.StatementTimeout се игнорира

  3. Как да изпълните генериран скрипт (.sql файл) със схема и данни в SQL Server 2008

  4. Създаване на съхранена процедура за добавяне с автоматично нарастване като основно поле?

  5. Как първо да промените/зададете сортиране в EF Code