Bonjour,
Je veux utiliser SMO pour insérer des données dans une table contenant uniquement 2 champs (commune et codePostal).
Voici le code que j'utilise pour lire mes fichiers scripts :
Tout se passe bien jusqu'au moment ou j'arrive sur mon fichier contenant environ 35000 instructions INSERT.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ... Imports Microsoft.SqlServer.Management.Smo Imports Microsoft.SqlServer.Management.Common Imports System.IO ... Dim scriptDirectory As String = My.Application.Info.DirectoryPath & "\ScriptFile" Dim sqlConnectionString As String = "Integrated Security=SSPI;" & "Persist Security Info=True;Initial Catalog=" & _databaseName & ";Data Source=.\SQLEXPRESS;Timeout=120;" Dim di As New DirectoryInfo(scriptDirectory) Dim rgFiles As FileInfo() = di.GetFiles("*.sql") For Each fi As FileInfo In rgFiles Dim fileInfo As New FileInfo(fi.FullName) Dim script As String = fileInfo.OpenText().ReadToEnd() Dim connection As New SqlConnection(sqlConnectionString) Dim server As New Server(New ServerConnection(connection)) server.ConnectionContext.ExecuteNonQuery(script) Next
Voici un extrait du script :
SMO devient extrèmenent lent à tel point que je n'ai même pas eu la patience d'attendre qu'il ait fini après 10 bonnes minutes d'attente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 .... INSERT [dbo].[Communes] ([commune], [codePostal]) VALUES (N'AAST', N'64460') INSERT [dbo].[Communes] ([commune], [codePostal]) VALUES (N'ABAINVILLE', N'55130') INSERT [dbo].[Communes] ([commune], [codePostal]) VALUES (N'ABANCOURT', N'59265') .... etc. GO
Est-il possible d'améliorer les performances de SMO dans ce cas précis ?
Merci
Partager