SQL Server 데이터베이스 연결을 열고 DataReader 개체에서 테이블의 첫 번째 레코드를 가져온 다음 개체를 닫는 간단한 작업을 수행하고 있습니다. 그러나, 나는 약 5 초 정도의 지연이 연결을 닫는 데 약간의주의를 보였다. 그러나 지연은 명령 개체가 지정된 쿼리를 실행 한 후에 만 발생합니다. 나는 전에 이와 같은 설정에서 일해 왔으며 연결을 종료하는 동안 오랜 지연이 있다는 것을 기억하지 못합니다.비정상적으로 오래 동안 ADO.NET 연결 개체를 닫으려고 일시 중지했습니다. 정상입니까?
Public Sub TestDb()
Dim cnStrBuilder As New SqlClient.SqlConnectionStringBuilder
Dim cn As New SqlClient.SqlConnection
Dim sqlSelectName As New SqlClient.SqlCommand
Dim drName As SqlClient.SqlDataReader
Dim newName As New SymName
Dim i As Integer
cnStrBuilder.UserID = "sa"
cnStrBuilder.ConnectTimeout = 30
cnStrBuilder.Password = ""
cnStrBuilder.PersistSecurityInfo = True
cnStrBuilder.DataSource = "EMARKET\FL_DB"
cnStrBuilder.InitialCatalog = "EmailMarketing"
sqlSelectName.CommandType = CommandType.Text
sqlSelectName.CommandText = "SELECT * FROM [NAME]"
System.Console.WriteLine(cnStrBuilder.ConnectionString)
cn.ConnectionString = cnStrBuilder.ConnectionString
Try
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
System.Console.WriteLine("Connection success")
sqlSelectName.Connection = cn
System.Console.WriteLine("Execute Reader")
drName = sqlSelectName.ExecuteReader
If drName.HasRows = True Then
System.Console.WriteLine("Read Row")
drName.Read()
For i = 0 To drName.FieldCount - 1
Console.WriteLine(drName.Item(i).ToString)
Next
End If
System.Console.WriteLine("Closing connection")
sqlSelectName.Connection.Close()
Catch ex As Exception
System.Console.WriteLine("Something Happened")
System.Console.WriteLine(ex.Message)
End Try
System.Console.WriteLine("Done.")
End Sub
나는 연결이 거의 imediately 닫
'System.Console.WriteLine("Execute Reader")
'drName = sqlSelectName.ExecuteReader
'
'If drName.HasRows = True Then
' System.Console.WriteLine("Read Row")
' drName.Read()
'
' For i = 0 To drName.FieldCount - 1
' Console.WriteLine(drName.Item(i).ToString)
' Next
'End If
라인을 생략합니다. 뭐라 구요? 나는 연결을 닫을 때 지연을 야기하는 .ExecuteReader
라인을 좁히고있다. 지연의 원인은 무엇이며 어떻게 해결합니까?
우수 생각합니다. 비교적 큰 테이블입니다. 나는 그것을 시도 할 것이다. –