Fra et internt perspektiv er metoderne i det væsentlige de samme.
Bag kulisserne, når du opretter en dato-baseret partition, opretter SQL-motoren separate fysiske tabeller for hver partition og laver derefter, hvad der grundlæggende er en UNION
når du forespørger i selve tabellen.
Hvis du bruger et filter i din forespørgsel på den partitionerede tabel, der svarer til dit partitioneringsfelt (DateField
lad os sige), så kan motoren gå direkte til den partition, du har brug for til dataene. Hvis ikke, søger den efter hver fysisk tabel i den logiske tabel efter behov for at fuldføre forespørgslen.
Hvis dine forespørgsler vil involvere et datofilter (hvilket det lyder som om de vil ud fra dit spørgsmål), så kan jeg ikke komme i tanke om nogen fordel ved din "brugerdefinerede" metode.
Grundlæggende er det valg, du skal træffe, vil du være ansvarlig for alle logikken og hjørnesager, der er involveret i partitionering, eller stole på, at udviklerne hos Microsoft, som har gjort dette i årtier, gør det for dig?
Til mit eget formål, hvis der er en indbygget ramme for noget, jeg vil gøre, så prøver jeg altid at bruge det. Det er uvægerligt hurtigere, mere stabilt og mindre udsat for fejl end en "rull-din-egen"-løsning.