Comment convertir SQL Server 2008 R2 base de données vers SQL Server 2012?
J'ai installé SQL Server 2012, et attaché à une base de données générés à l'origine de SQL Server 2008 R2.
Tout semble fonctionner parfaitement, avec un problème: fusionne supprimés à partir de 1000 par seconde à 10 par seconde (une 100x ralentissement).
Je suis en déduit que c'est parce que je suis accédant à un Serveur SQL server 2008 R2 base de données de SQL Server 2012. Est-il un moyen de convertir la base de données de SQL Server 2012 format? Ou est-il autre chose des thats passe qui pourrait expliquer l'100x ralentissement de la performance?
Je dois également ajouter que ma base de données utilise le partitionnement horizontal, donc j'ai besoin de quelque chose qui permettra de conserver toutes les fonctionnalités de la base de données d'origine.
OriginalL'auteur Contango | 2012-04-22
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous définissez le mode de compatibilité de la base de données à 110, et mettre à jour les statistiques.
EXEC sp_MSforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'
cette méthode n'est pas très sûr, et pas seulement parce que les sans-papiers, non prise en charge de la procédure de partages de code avec sp_MSforeachdb (, qui est connu pour casser), mais aussi parce que vous pourriez avoir plusieurs tables avec le même nom dans différents schémas. Mon code aussi vous pouvez très facilement ajouter des critères de filtre, comme seules les tables avec une certaine convention de nommage ou dans un schéma spécifique.
Vous pouvez également exécuter Ola Hallengren est chouette ensemble d'utilitaires (ola.hallengren.com) pour mettre à jour les statistiques, comme vous devriez le faire sur une base régulière, de toute façon.
OriginalL'auteur Aaron Bertrand
Quand j'ai couru le SQL dans la réponse à la nvarchar débordé. Le problème, c'est quand votre base de données a trop de tables SQL est trop long pour un type nvarchar. Ma base de données avait assez de tables de débordement de type varchar (deux fois plus longtemps qu'un type nvarchar). J'ai donc édité le SQL d'une boucle sur chaque table et d'exécuter des instructions distinctes. De cette façon, vous ne manquerez pas de mise à jour des statistiques sur l'un de vos tableaux.
n'est-ce pas la limite d'un type nvarchar(max) 4000? Ou est-ce que le paramètre de limite de SP_ExecuteSql? Si donc je suppose que juste un Exec pour faire le travail
Non... et non...
OriginalL'auteur James Anderson
La mise à jour de la statistique est un must quand vous attacher et détacher la base de données. Sinon planificateur de requête ne peut pas générer un plan d'exécution efficace et à la fin avec de temps d'exécution. C'est ce que j'ai remarqué.
OriginalL'auteur Lazy_writer
Pour mettre à jour un fichier de base de données à utiliser LocalDB:
1.Dans l'Explorateur de serveurs, sélectionnez la connexion à la Base de données de bouton.
2.Dans la boîte de dialogue Ajouter une Connexion, spécifiez les informations suivantes:
Source de données: Microsoft SQL Server (SqlClient)
Nom du serveur: (LocalDB)\v11.0
Joindre un fichier de base de données: chemin, où Chemin est le chemin d'accès physique au primaire .fichier mdf.
Nom logique: Nom, où nom est le Nom que vous souhaitez utiliser avec le fichier.
Cliquez sur le bouton OK.
Lorsque vous y êtes invité, cliquez sur le bouton Oui pour mettre à niveau le fichier.
OriginalL'auteur Hemant Malasi
Est-ce sur la bonne voie:
http://msdn.microsoft.com/en-us/library/ms189625.aspx
OriginalL'auteur Contango