vb.net : Время ожидания истекло. Время ожидания истекло до завершения операции или сервер не отвечает

#sql #sql-server #vb.net

#sql #sql-сервер #vb.net

Вопрос:

У меня возникает ошибка «Истек срок ожидания» всякий раз, когда я пытаюсь сгенерировать свои отчеты в своей системе. Он говорит: «Истек тайм-аут. Время ожидания истекло до завершения операции или сервер не отвечает. » Что может быть причиной этой проблемы? и какое возможное решение?

У меня есть эти 4 таблицы, и в каждой таблице приведено 16 000 записей ниже. Я предполагаю, что причиной этой ошибки является то, что в таблице 4 слишком много записей. Вот мой запрос:

   SELECT * FROM(SELECT A.ItemNo, A.EquipmentID, A.AssetAccountCode, A.Descrip,  
 B.Condition, B.[Year], C.Brand, c.Model, c.TechnicalSpecs,d.  
[Type],d.Criticallity,d.[Status],(CONVERT(VARCHAR(4),d.YearInstalled,127)) as   
Yearinstalled FROM  tbl_Masterlist A JOIN  tbl_Condition B ON A.EquipmentID =  
 B.EquipmentID JOIN  tbl_TechnicalSpecification C ON b.EquipmentID =   
c.EquipmentID JOIN tbl_Status D On c.EquipmentID=d.EquipmentID) src PIVOT  
 (MAX(CONDITION) FOR YEAR IN ([2014], [2015], [2016])) piv
  

Вот мой код для получения результата:

 >  Public Sub Read()
>         Try
>             DS = New DataSet
>             DA = New SqlDataAdapter(sql, db)
>             DA.Fill(DS, 0)
>         Catch ex As Exception
>             MsgBox(ex.Message, MsgBoxStyle.Critical)
>         End Try
>     End Sub



>    Private Sub filldgv()
>         SQLModCons.sql = "SELECT * FROM(SELECT A.ItemNo, A.EquipmentID, A.AssetAccountCode, A.Descrip, B.Condition, B.[Year],
> C.Brand, c.Model,
> c.TechnicalSpecs,d.[Type],d.Criticallity,d.[Status],(CONVERT(VARCHAR(4),d.YearInstalled,127))
> as Yearinstalled FROM  tbl_Masterlist A JOIN  tbl_Condition B ON
> A.EquipmentID = B.EquipmentID JOIN  tbl_TechnicalSpecification C ON
> b.EquipmentID = c.EquipmentID JOIN tbl_Status D On
> c.EquipmentID=d.EquipmentID) src PIVOT (MAX(CONDITION) FOR YEAR IN (["
> amp; year1 amp; "], [" amp; year2 amp; "], [" amp; year3 amp; "])) piv "
>         SQLModCons.Read()
>         If Not SQLModCons.DS.Tables.Count = 0 Then
>             dgvReports.DataSource = SQLModCons.DS.Tables(0)
>             Dim rowc As Integer = dgvReports.RowCount.ToString
>             lblCount.Text = rowc
>         End If
>     End Sub



> Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles btnSearch.Click
>         year1 = cbyear1.Text
>         year2 = cbyear2.Text
>         year3 = cbyear3.Text
>         filldgv()
>     End Sub
  

Комментарии:

1. Привет, вы пробовали запускать этот запрос непосредственно к базе данных? У него большой объем данных? Если да, можете ли вы показать этот код о том, как вы извлекаете / вызываете этот запрос?

2. Да, я пробовал запускать его в Management Studio, и это также занимает много времени. В настоящее время я все еще жду, прошло 18 минут.

3. Можете ли вы показать нам свой код для получения результатов?

4. Public Sub Read() Попробуйте DS = New DataSet DA = New SqlDataAdapter(sql, db) DA.Fill(DS, 0) Перехватить ex как исключение MsgBox(например, сообщение, MsgBoxStyle. Критический) End Try End Sub Private Sub btnSearch_Click(отправитель от имени системы. Объект, бывший системным. EventArgs) обрабатывает btnSearch.Щелкните year1 = cbyear1.Text year2 = cbyear2.Text year3 = cbyear3.Text filldgv() End Sub

5. Поскольку это большой набор результатов, попробуйте установить время ожидания в .NET.