Comment faire pour Partitionner une Table par Mois (“les Deux” ANNÉE & MOIS) et de créer mensuel des partitions automatiquement?
J'essaie de Partitionner une Table par les deux Année et Mois. La Colonne à travers lequel je vais partition est une colonne de type datetime avec un ISO de Format ('20150110', 20150202", etc).
Par exemple, j'ai des données de ventes pour 2010, 2011, 2012. J'aimerais que les données pour être partitionné par an et, chaque année, être partitionné par mois en tant que bien. (2010/01, 2010/02, ... 2010/12, 2011/01, ... 2015/01...)
E. X:
Sales2010Jan, Sales2010Feb, Sales2011Jan, Sales2011Feb, Sales2012Dec, etc.
Ma Question est: est-il encore possible? Si elle l'est, comment un je automatiser le processus en utilisant SSIS?
Êtes-vous physiquement partitionnement des données en plusieurs table en préparation pour être utilisé dans un vue partitionnée ou vous essayez de mettre en œuvre l'Édition Enterprise fonction de la table de partitionnement?
Ou êtes-vous juste essayer d'affichage dynamique PIVOT colonnes basées sur le partitionnement de données?
vous devez utiliser datetime, pas de chaîne, puis la partition par le 1er jour de chaque période.
Im Essayant de partition eux à l'aide de SQL Enterprise Edition... Cependant, je ne sais pas si c'est possible de faire de la partition est basée sur 2 critères. Et comme mentionné dans la question de mon but principal est de pouvoir enregistrer chaque mois dans un partitionnée fichier de ses propres Sales2010Jan, Sales2010Feb, Sales2011Jan, Sales2011Feb, Sales2012Dec, etc...
Im Essayant de partition eux à l'aide de SQL Enterprise Edition... Cependant, je ne sais pas si c'est possible de faire de la partition est basée sur 2 critères. Et comme mentionné dans la question de mon but principal est de pouvoir enregistrer chaque mois dans un partitionnée fichier de ses propres Sales2010Jan, Sales2010Feb, Sales2011Jan, Sales2011Feb, Sales2012Dec, etc...
Ou êtes-vous juste essayer d'affichage dynamique PIVOT colonnes basées sur le partitionnement de données?
vous devez utiliser datetime, pas de chaîne, puis la partition par le 1er jour de chaque période.
Im Essayant de partition eux à l'aide de SQL Enterprise Edition... Cependant, je ne sais pas si c'est possible de faire de la partition est basée sur 2 critères. Et comme mentionné dans la question de mon but principal est de pouvoir enregistrer chaque mois dans un partitionnée fichier de ses propres Sales2010Jan, Sales2010Feb, Sales2011Jan, Sales2011Feb, Sales2012Dec, etc...
Im Essayant de partition eux à l'aide de SQL Enterprise Edition... Cependant, je ne sais pas si c'est possible de faire de la partition est basée sur 2 critères. Et comme mentionné dans la question de mon but principal est de pouvoir enregistrer chaque mois dans un partitionnée fichier de ses propres Sales2010Jan, Sales2010Feb, Sales2011Jan, Sales2011Feb, Sales2012Dec, etc...
OriginalL'auteur Amr Tharwat | 2015-08-10
Vous devez vous connecter pour publier un commentaire.
SSIS est un ETL (extraction, transformation, chargement). Ce n'est pas ce que vous voulez faire.
Vous avez juste besoin de créer des instructions DDL dynamiquement .
Je travaille trimestre, ci-dessous, mais elle fonctionne aussi bien avec 1, 2 ou X mois si vous le souhaitez.
La création de N+1 partitions pour 2015 T1 (avant, T1 et après T2) sur une table avec un int identité PK et une datetime2 partitionné de la colonne.
Mise à jour pour ajouter des mois, de faire tous les mois ou tout ce que vous avez besoin...
D'abord créer des N groupes de fichiers:
Ajouter un fichier pour chaque groupe de fichiers:
Créer une fonction de partition sur un datetime2 type (ou la date ou même datetime):
Créer un schéma de partition à l'aide de la fonction de partition sur chaque groupe de fichiers (N+1):
Créer la table partitionnée sur son schéma de partition:
Ajouter un index Cluster sur la partitionné colonne et le schéma de partition:
Ajouter une clé primaire de la colonne id:
Revoir tout cela et comment l'utiliser pour créer des dynamiques SQL
le résultat de cette requête est une liste de requêtes SQL qui doivent être exécutées dans l'ordre.
Si vous voulez l'exécuter mensuel et assurez-vous que les 12 prochains mois sont toujours créés, utilisez ce
Set @endDate = DATEADD(MONTH, 12, getdate())
Il sera de sortie 4*N de lignes pour le N trimestres manquants entre la dernière limite de la fonction et @date de fin:
Vous pouvez l'exécuter ligne par ligne avec un curseur ou une boucle while ou vous pouvez simplement copier et le coller dans le SMS.
@endDate = DATEADD(MONTH, 3, getdate()
permettra de créer les 3 prochains moisCréer de l'emploi = https://www.mssqltips.com/sqlservertip/3052/simple-way-to-create-a-sql-server-job-using-tsql/
sp_executesql = https://technet.microsoft.com/en-us/library/ms188001%28v=sql.110%29.aspx
Boucle While = https://dba.stackexchange.com/questions/57933/can-exec-work-with-while-loop-of-cursor
Sql server peut exécuter automatiquement une tâche qui contient SQL ou package SSIS. Dans ce cas, vous devez sql. Il n'est pas nécessaire d'utiliser un package SSIS. Si vous exécutez ce script et remplacer la date fixée au début par la date de get + de 12 ou 13 mois. Il va faire le travail. Vous avez besoin d'ajouter une boucle qui exécute chaque instruction à partir de la dernière sélection. Je vous l'ai expliqué tout à la fin de ma réponse. Tout est fait à l'aide de SQL.
Veuillez m'excuser car je ne suis pas un expert mais je suis encore nouveau pour tout cela 🙂 j'ai bien compris le concept de tout ce que vous avez écrit jusqu'à présent et vous en remercie. Cependant, ce que je n'ai pas eu est ce que la dernière partie de votre question (-- Obtenir tous les trimestres entre max et date de fin) quand je le lance, il ne marche pas créer tous les groupes de fichiers entre les 2 dates. imprime juste requêtes.. quel est le but de tout cela? encore désolé
Merci beaucoup pour l'explication 🙂 avoir mal à droite sur la modification de la solution et de vous laisser savoir comment ça se passe 🙂
Je m'excuse pour le retard que j'ai été de suite en raison d'un congé de maladie. De toute façon, je vous Remercie beaucoup pour votre effort qu'il a parfaitement fonctionné 🙂
OriginalL'auteur Julien Vavasseur