sql >> Databasteknik >  >> RDS >> Sqlserver

Partitionering efter år kontra separata tabeller med namnet Data_2011, Data_2010, etc.

Ur ett internt perspektiv är metoderna i huvudsak desamma.

Bakom kulisserna, när du skapar en datumbaserad partition skapar SQL-motorn separata fysiska tabeller för varje partition och gör sedan vad som i princip är en UNION när du frågar själva tabellen.

Om du använder ett filter i din fråga på den partitionerade tabellen som motsvarar ditt partitioneringsfält (DateField låt oss säga), då kan motorn gå direkt till den partition som du behöver för data. Om inte, söker den efter varje fysisk tabell i den logiska tabellen efter behov för att slutföra frågan.

Om dina frågor kommer att involvera ett datumfilter (vilket det låter som att de kommer från din fråga) så kan jag inte tänka mig någon fördel med din "anpassade" metod.

I grund och botten är valet du behöver göra vill du vara ansvarig för alla logiska och hörnfall som är involverade i partitionering, eller lita på att utvecklarna på Microsoft som har gjort detta i årtionden gör det åt dig?

För mina egna syften, om det finns ett inbyggt ramverk för något jag vill göra så försöker jag alltid använda det. Den är alltid snabbare, stabilare och mindre felbenägen än en "rulla-din-egen"-lösning.



  1. php-fel och även efter att ha definierat variabel

  2. Hur konverterar jag ett heltal till sträng som en del av en PostgreSQL-fråga?

  3. Hur kan jag få en lista över användarkonton med hjälp av kommandoraden i MySQL?

  4. Allvarligt fel:Använder $this när den inte är i objektsammanhang i