﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Database Deployment Toolkit » Issues  » Timeout expired sqlException using the DDT with big tables</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Sun, 31 May 2026 02:27:19 GMT</lastBuildDate><ttl>20</ttl><item><title>Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29233.aspx</link><description>I am having a timeout issue when trying to update a database which have a table with 43 million records and will continue to grow.&lt;br/&gt;&lt;br/&gt;I am using DDT 1.7.3.0 and the project is compiled for x86 with .Net 4.0 runtimes.&lt;br/&gt;I am using the SQL.DatabaseMigrator class and modified the constructor to be able to parse the SQL Connection string and add the ConnectTimeout=0 to avoid the timeout error.&amp;nbsp; This has been working fine until now, guess that due to the constant growing of this table it keeps pushing for more time to complete any alteration to it.&amp;nbsp; In this particular case I am doing the following changes to this table structure:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Alter a field from Integer to BigInt.&lt;/li&gt;&lt;li&gt;Delete a field.&lt;/li&gt;&lt;li&gt;Run a Post Deploy Script to add some indexes with the [INCLUDE] command which is not supported by the DDT designers yet.&lt;/li&gt;&lt;/ol&gt;&lt;span&gt;The database update process is done automatically in my application.&amp;nbsp; I don't have access to all customers running the application and I need this process to be able to complete the task without user intervention.&lt;br/&gt;&lt;br/&gt;I would appreciate if anybody can take a look at the code below and give me some suggestion on what can be done to avoid the timeout error.&amp;nbsp; I know that since this table will be growing constantly that this may come back to bite me. &lt;span&gt;:D&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;Here is my constructor code:&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;&lt;/span&gt;&lt;pre style="font-family: consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;connectionString&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;DDTPackageName&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;DDTPackagePassword&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;String&lt;/span&gt;,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;DataDeploymentOptions&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;Enumerations.&lt;span style="color: rgb(43, 145, 175);"&gt;DataDeploymentOptions&lt;/span&gt;)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;parseConnString&amp;nbsp;&lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;Data.SqlClient.&lt;span style="color: rgb(43, 145, 175);"&gt;SqlConnectionStringBuilder&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;With&lt;/span&gt;&amp;nbsp;parseConnString&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.ConnectionString&amp;nbsp;=&amp;nbsp;connectionString&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;Update&amp;nbsp;our&amp;nbsp;fields&amp;nbsp;with&amp;nbsp;connection&amp;nbsp;values&amp;nbsp;we&amp;nbsp;can&amp;nbsp;use&amp;nbsp;later&amp;nbsp;on.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_SQLServer&amp;nbsp;=&amp;nbsp;.DataSource&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_SQLIntegratedSecurity&amp;nbsp;=&amp;nbsp;.IntegratedSecurity&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_SQLUserName&amp;nbsp;=&amp;nbsp;.UserID&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_SQLPassword&amp;nbsp;=&amp;nbsp;.Password&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_SQLDatabaseNameInServer&amp;nbsp;=&amp;nbsp;.InitialCatalog&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;Make&amp;nbsp;sure&amp;nbsp;to&amp;nbsp;update&amp;nbsp;the&amp;nbsp;database&amp;nbsp;being&amp;nbsp;used&amp;nbsp;in&amp;nbsp;the&amp;nbsp;connection.&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'==========================================================================&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;The&amp;nbsp;following&amp;nbsp;properties&amp;nbsp;below&amp;nbsp;needs&amp;nbsp;to&amp;nbsp;be&amp;nbsp;reset&amp;nbsp;to&amp;nbsp;avoid&amp;nbsp;getting&amp;nbsp;error&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;creating&amp;nbsp;the&amp;nbsp;database&amp;nbsp;the&amp;nbsp;first&amp;nbsp;time.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'==========================================================================&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;This&amp;nbsp;connection&amp;nbsp;is&amp;nbsp;also&amp;nbsp;used&amp;nbsp;when&amp;nbsp;creating&amp;nbsp;the&amp;nbsp;database&amp;nbsp;at&amp;nbsp;installation&amp;nbsp;time&amp;nbsp;and&amp;nbsp;if&amp;nbsp;the&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;name&amp;nbsp;of&amp;nbsp;the&amp;nbsp;database&amp;nbsp;is&amp;nbsp;specified&amp;nbsp;in&amp;nbsp;the&amp;nbsp;connection&amp;nbsp;this&amp;nbsp;will&amp;nbsp;fail,&amp;nbsp;so&amp;nbsp;we&amp;nbsp;need&amp;nbsp;to&amp;nbsp;blank&amp;nbsp;out&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;InitialCatalog&amp;nbsp;so&amp;nbsp;when&amp;nbsp;the&amp;nbsp;connection&amp;nbsp;is&amp;nbsp;used,&amp;nbsp;does&amp;nbsp;not&amp;nbsp;try&amp;nbsp;to&amp;nbsp;connect&amp;nbsp;to&amp;nbsp;a&amp;nbsp;database&amp;nbsp;that&amp;nbsp;does&amp;nbsp;not&amp;nbsp;exist.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.InitialCatalog&amp;nbsp;=&amp;nbsp;&lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;.ConnectTimeout&amp;nbsp;=&amp;nbsp;0&amp;nbsp;&lt;/span&gt;&lt;span style="color: green; font-weight: bold;"&gt;'&amp;nbsp;This&amp;nbsp;is&amp;nbsp;needed&amp;nbsp;when&amp;nbsp;working&amp;nbsp;with&amp;nbsp;large&amp;nbsp;datasets&amp;nbsp;to&amp;nbsp;avoid&amp;nbsp;a&amp;nbsp;timeout&amp;nbsp;exception.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.AsynchronousProcessing&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;False&lt;/span&gt;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;This&amp;nbsp;option&amp;nbsp;is&amp;nbsp;found&amp;nbsp;in&amp;nbsp;the&amp;nbsp;SF&amp;nbsp;connection&amp;nbsp;string&amp;nbsp;as&amp;nbsp;True&amp;nbsp;which&amp;nbsp;generated&amp;nbsp;thread&amp;nbsp;errors.&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;OK &amp;nbsp;Sample: Data&amp;nbsp;Source=PROGYTECH-XPS;&amp;nbsp;Initial&amp;nbsp;Catalog=&lt;/span&gt;&lt;span style="color: green;"&gt;MyDatabaseName&lt;/span&gt;&lt;span style="color: green;"&gt;; User&amp;nbsp;ID=MyUserID;&amp;nbsp;Password=MyPassword;&amp;nbsp;Asynchronous&amp;nbsp;Processing=False;Connect&amp;nbsp;Timeout=0&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;Bad&amp;nbsp;Sample:&amp;nbsp;Data&amp;nbsp;Source=PROGYTECH-XPS;&amp;nbsp;Initial&amp;nbsp;Catalog=MyDatabaseName;&amp;nbsp;User&amp;nbsp;ID=MyUserID;&amp;nbsp;Password=MyPassword;&amp;nbsp;Asynchronous&amp;nbsp;Processing=True&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;With&lt;/span&gt;&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_ConnectionString&amp;nbsp;=&amp;nbsp;parseConnString.ConnectionString&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_DDTPackageName&amp;nbsp;=&amp;nbsp;DDTPackageName&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_DDTPackagePassword&amp;nbsp;=&amp;nbsp;DDTPackagePassword&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_DDTPackagePathAndName&amp;nbsp;=&amp;nbsp;IO.&lt;span style="color: rgb(43, 145, 175);"&gt;Path&lt;/span&gt;.Combine(_PackagePath,&amp;nbsp;_DDTPackageName)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_DataDeploymentOptions&amp;nbsp;=&amp;nbsp;DataDeploymentOptions&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'--&amp;nbsp;To&amp;nbsp;handle&amp;nbsp;different&amp;nbsp;database&amp;nbsp;name,&amp;nbsp;we&amp;nbsp;must&amp;nbsp;use&amp;nbsp;the&amp;nbsp;exact&amp;nbsp;database&amp;nbsp;name&amp;nbsp;in&amp;nbsp;the&amp;nbsp;DDT&amp;nbsp;profile&lt;/span&gt;&lt;br/&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _DatabaseNames&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(43, 145, 175);"&gt;DatabaseTargetName&lt;/span&gt;(_SQLDatabaseNameInDDTProfile)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_DatabaseNames.NameOnServer&amp;nbsp;=&amp;nbsp;_SQLDatabaseNameInServer&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;This&amp;nbsp;call&amp;nbsp;is&amp;nbsp;required&amp;nbsp;by&amp;nbsp;the&amp;nbsp;Windows&amp;nbsp;Form&amp;nbsp;Designer.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent()&lt;br/&gt; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;'&amp;nbsp;Add&amp;nbsp;any&amp;nbsp;initialization&amp;nbsp;after&amp;nbsp;the&amp;nbsp;InitializeComponent()&amp;nbsp;call.&lt;/span&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;span&gt;[/quote]&lt;br/&gt;Here is the part of the DDT result log where this table failed the first time:&lt;br/&gt;&lt;span&gt;[quote]&lt;br/&gt;• 12/22/2010 1:14:38 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; The table 'TransactionItems' was successfully altered.&lt;br/&gt;• 12/22/2010 1:14:40 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; The table 'TransactionItemsImport' is being prepared to be modified.&lt;br/&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Altering table 'TransactionItemsImport' failed.&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; FailedOperationException&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp; Alter failed for Table 'dbo.TransactionItemsImport'.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; ExecutionFailureException&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp; An exception occurred while executing a Transact-SQL statement or batch.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; SqlException&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp; Timeout expired.&amp;nbsp; The timeout period elapsed prior to completion of the operation or the server is not responding.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Source&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Microsoft.SqlServer.Smo&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Stack Trace:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParserStateObject.ReadByte()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImplFinish(StringCollection alterQuery, ScriptingOptions so)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImplWorker()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Smo.SqlSmoObject.AlterImpl()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at Microsoft.SqlServer.Management.Smo.Table.Alter()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;X 12/22/2010 1:24:46 AM&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at MicroFour.StrataFrame.DBEngine.SQL.DatabaseMigrator.AlterSmoObject(IAlterable ObjectToAlter, String ObjectName, DBEObjectType ObjectType)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;[/quote]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;</description><pubDate>Thu, 23 Dec 2010 13:15:38 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29249.aspx</link><description>Great info.. Merry Christmas!!!</description><pubDate>Thu, 23 Dec 2010 13:15:38 GMT</pubDate><dc:creator>Keith Chisarik</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29247.aspx</link><description>Hi Ivan, Keith,&lt;br/&gt;&lt;br/&gt;Thanks for the response.&amp;nbsp; BTW I am using MS-SQL Server 2008 Standard.&lt;br/&gt;&lt;br/&gt;I am setting the ConnectTimeout = 0 in my code after reading the connection string and then parse it to add the ConnectTimeout parameter (see the constructor in the original posting).&amp;nbsp; I am sure an overload would have make this process easier &lt;span&gt;:)&lt;/span&gt;&lt;br/&gt;I measured the time manually and it make take from 1 to 45 minutes to update this big table in some cases, that is why I set the ConnectTimeout to zero, I could try putting a value of representing an hour but since this table will just continue to grow at some point it will fail again due to timeout.&lt;br/&gt;&lt;br/&gt;Ok, after using Ivan's best friend "Google" I found several post where while doing similar alterations to the table as mine "changing an Integer field to a Big Integer" also reported timeouts.&amp;nbsp; All this is very unique to the fact that the table has 43 million records and will also be affected by any index or constrains used by the field to be altered.&lt;br/&gt;&lt;br/&gt;After a lengthy review process I noticed that after my application crashed, the ALTER TABLE command was still running on MS-SQL monitor and had to wait until it finished to be able to try again manually via script.&lt;br/&gt;&lt;br/&gt;Some recommendations when working with big tables are to do the following:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Remove any index or constraint&lt;/li&gt;&lt;li&gt;Alter the table&lt;/li&gt;&lt;li&gt;Re-create any index or constraint&lt;/li&gt;&lt;/ol&gt;I don't know what are the rules the DDT uses to alter the tables and would appreciate any clarification on this regard.&amp;nbsp; I need to be able to trust my update process and not to put in jeopardy the customer data before an update.&amp;nbsp; I know customer should be responsible for doing a backup with a table that big, but in reality that is not always the case and my application will be the one to be blame for any data lost or corruption.</description><pubDate>Wed, 22 Dec 2010 11:28:02 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29242.aspx</link><description>You said it! ;)</description><pubDate>Wed, 22 Dec 2010 06:46:56 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29241.aspx</link><description>Your right.&amp;nbsp; A quick look in the SF source for the DataBaseMigrator&amp;nbsp;shows that sometimes before ExecuteNonQuery is called the timeout is set to 0 (infinite) and sometimes it is not set at all so the default is 30 seconds, you might have to compile in debug and see which method exactly is blowing out and if it needs its timeout adjusted via an overloaded method or property.</description><pubDate>Wed, 22 Dec 2010 06:45:09 GMT</pubDate><dc:creator>Keith Chisarik</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29239.aspx</link><description>Yep, but his issue is with the DatabaseMigrator, so I think he has no access to the SQL command during the deployment. We would probably need to have an overload or a property on the class to set the CommandTimeout to be used.</description><pubDate>Wed, 22 Dec 2010 06:41:51 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29237.aspx</link><description>that should do it, I had the same problem with a SPROC that trims every string field in a table, below is the code&lt;br/&gt;&lt;br/&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;cmd.CommandType = &lt;/font&gt;&lt;/font&gt;&lt;font color=#2b91af size=2 face=Consolas&gt;&lt;font color=#2b91af size=2 face=Consolas&gt;&lt;font color=#2b91af size=2 face=Consolas&gt;CommandType&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;.StoredProcedure&lt;br/&gt;&lt;br/&gt;cmd.CommandText = &lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515 size=2 face=Consolas&gt;&lt;font color=#a31515 size=2 face=Consolas&gt;&lt;font color=#a31515 size=2 face=Consolas&gt;"dbo.rtic_TrimAllFields"&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#008000 size=2 face=Consolas&gt;&lt;font color=#008000 size=2 face=Consolas&gt;&lt;font color=#008000 size=2 face=Consolas&gt;'time unit below is seconds&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#008000 size=2 face=Consolas&gt;&lt;font color=#008000 size=2 face=Consolas&gt;&lt;font color=#008000 size=2 face=Consolas&gt;'600 is ridiculous, unless you are trimming all the values of all the string fields in a table from a data conversion :)&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;&lt;strong&gt;cmd.CommandTimeout = 600&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;cmd.Parameters.Clear()&lt;br/&gt;&lt;br/&gt;cmd.Parameters.AddWithValue(&lt;/font&gt;&lt;/font&gt;&lt;font color=#a31515 size=2 face=Consolas&gt;&lt;font color=#a31515 size=2 face=Consolas&gt;&lt;font color=#a31515 size=2 face=Consolas&gt;"@TableName"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;, bo.mapt_sqltable).SqlDbType = &lt;/font&gt;&lt;/font&gt;&lt;font color=#2b91af size=2 face=Consolas&gt;&lt;font color=#2b91af size=2 face=Consolas&gt;&lt;font color=#2b91af size=2 face=Consolas&gt;SqlDbType&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;.NVarChar&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=#008000 size=2 face=Consolas&gt;&lt;font color=#008000 size=2 face=Consolas&gt;&lt;font color=#008000 size=2 face=Consolas&gt;' process the sql command&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=2 face=Consolas&gt;&lt;font size=2 face=Consolas&gt;cmd.ExecuteNonQuery()&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;</description><pubDate>Wed, 22 Dec 2010 06:28:19 GMT</pubDate><dc:creator>Keith Chisarik</dc:creator></item><item><title>RE: Timeout expired sqlException using the DDT with big tables</title><link>http://forum.strataframe.net/FindPost29234.aspx</link><description>Hi&amp;nbsp; Edhy.&lt;br/&gt;&lt;br/&gt;It sounds like you need the CommandTimeout in this case. But this is set on a Command basis and not through the connection string.&lt;br/&gt;&lt;br/&gt;So, you could try this: &lt;a href="http://stackoverflow.com/questions/1137190/changing-the-commandtimeout-in-sql-management-studio"&gt;&lt;a href="http://stackoverflow.com/questions/1137190/changing-the-commandtimeout-in-sql-management-studio"&gt;http://stackoverflow.com/questions/1137190/changing-the-commandtimeout-in-sql-management-studio&lt;/a&gt;&lt;/a&gt;</description><pubDate>Wed, 22 Dec 2010 03:08:21 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item></channel></rss>