Uygulamadan Talep e...
 
Bildirimler
Hepsini Temizle

Uygulamadan Talep edilen Sorgu Sonuçları Geç Geliyor  

  RSS
Yusuf ERDEMİR
(@YusufERDEMiR)
Üye

Merhabalar,

C# kullanarak geliştirdiğim uygulamamdan SQL Servara bağlanıyorum ve bir veri kümesi döndürmeye çalışıyorum bunun için kullandığım fonksiyon

         public static DataTable GetDataTable(string query, string connString, Components.DB.SqlObject so)
        {
            SqlConnection cn = new SqlConnection(connString == "" ? ConnectionString : connString);
            SqlCommand cmd = new SqlCommand();
           
            if(so!=null &&so.Parameters!=null)
                foreach(ParameterObject po in so.Parameters)
                    cmd.Parameters.Add(new SqlParameter(po.ParameterName, po.ParameterValue));
            SqlDataAdapter da = new SqlDataAdapter();
            DataSet ds = new DataSet();
            cmd.Connection = cn;
            cmd.CommandText = query;
            da.SelectCommand = cmd;
            da.Fill(ds);
            return ds.Tables[0];
        }

 

Grup by kullanarak çektiğim bir veri kümesini uygulamadan yukarıdaki kod parçasıyla talep ettiğimde SQL server bana uzun bir süre cevap vermiyor ve timeouta düşüyor. Ancak Aynı sorguyu direkt olarak SQL Server Management Studio ile çalıştırdığımda 1-2 saniye gibi kısa bir sürede sonuç seti geliyor.

 Acaba nerde hatayapıyor olabilirim? Fikri olan arkadaşlar paylaşırsa sevirinirim. Herkese iyi çalışmalar diliyorum

 

 

 

 

Alıntı
Gönderildi : 27/12/2012 13:01
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

ConnectionString'te problem vardır.

http://www.connectionstrings.com/ adresinden kontrol edebilirsiniz. Veya buraya yapıştırın biz bakalım.

CevapAlıntı
Gönderildi : 31/12/2012 15:44
Yusuf ERDEMİR
(@YusufERDEMiR)
Üye

Connection string aşağıdaki gibi. Fakat programın tamamında aynı connection stringi kullanıyorum. Ancak bir raporda böyle bir sorun oluşuyor. 

Password=******;Persist Security Info=True;User ID=Sep2008;Initial Catalog=Sep2008;Data Source=OztasSql

CevapAlıntı
Gönderildi : 01/01/2013 12:43
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

Fonksiyonda connection open veya close kısımlarını göremedim. Belki connection açık kaldığından timeout'a atıyor olabilir. Timeout süresini uzatarak denediniz mi?

CevapAlıntı
Gönderildi : 03/01/2013 17:24
Yusuf ERDEMİR
(@YusufERDEMiR)
Üye

O metodda connection otomatik olarak açılıyor. ben yine open ve closlarıda ekledim fakat birşey değişmedi. Zaten sorun şu ki Aynı sorguyu direkt olarak SQL Server Management Studio ile çalıştırdığımda 1-2 saniye gibi kısa bir sürede sonuç seti geliyor fakat programdan aynı sorguyu çalıştırdığımda çok uzun süre alıyor bunun sebebini bulamadım neden böyle bişey oluyor? Sanki SQL Server Management studioya ayrıcalık tanıyor gibi bir durum var

CevapAlıntı
Gönderildi : 04/01/2013 11:45
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

Peki ilk olarak şunu yapalım. Gelen exception'ı buraya kopyalayın veya siz bakın, bu timeout sql taraflı mı geliyor yoksa app taraflı mı bulalım.

Bunun haricinde birde kod tarafından timeout süresini uzatalım.

connectionStringBuilder.ConnectTimeout = 180;

 

CevapAlıntı
Gönderildi : 04/01/2013 13:35
Yusuf ERDEMİR
(@YusufERDEMiR)
Üye
Merhabalar,
 
Exception detayı aşağıdadır. 
 
System.Data.SqlClient.SqlException was unhandled
  Message=Zaman aşımı süresi doldu. İşlem tamamlanmadan zaman aşımı süresi doldu veya sunucu yanıt vermiyor.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=11
  LineNumber=0
  Number=-2
  Procedure=""
  Server=OztasSql
  State=0
  StackTrace:
       konum: System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       konum: System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       konum: System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       konum: System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       konum: System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
       konum: System.Data.SqlClient.SqlDataReader.get_MetaData()
       konum: System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       konum: System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       konum: System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       konum: System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
       konum: System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
       konum: System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
       konum: System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
       konum: System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       konum: System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       konum: System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
       konum: Components.DB.DBProvider.GetDataTable(String query, String connString, SqlObject so) D:\SkyDrive\SEP 2006\SEP\SEP\Components\DB\DBProvider.cs içinde: satır 29
       konum: Components.DB.DBProvider.GetDataTable(String query, SqlObject so) D:\SkyDrive\SEP 2006\SEP\SEP\Components\DB\DBProvider.cs içinde: satır 46
       konum: SEP.Otomasyon.fmOUTakibi.VerileriYenile() D:\SkyDrive\SEP 2006\SEP\SEP\Otomasyon\OURaporu.cs içinde: satır 362
       konum: SEP.Otomasyon.fmOUTakibi.tsbYenile_Click(Object sender, EventArgs e) D:\SkyDrive\SEP 2006\SEP\SEP\Otomasyon\OURaporu.cs içinde: satır 456
       konum: System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
       konum: System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
       konum: System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
       konum: System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
       konum: System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
       konum: System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
       konum: System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
       konum: System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       konum: System.Windows.Forms.Control.WndProc(Message& m)
       konum: System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       konum: System.Windows.Forms.ToolStrip.WndProc(Message& m)
       konum: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       konum: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       konum: System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       konum: System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       konum: System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       konum: System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       konum: System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       konum: System.Windows.Forms.Application.Run(Form mainForm)
       konum: SEP.Sep.Main() D:\SkyDrive\SEP 2006\SEP\SEP\Yardimcilar\Sep.cs içinde: satır 76
       konum: System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       konum: System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       konum: System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
       konum: System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
       konum: System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       konum: System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
       konum: System.Activator.CreateInstance(ActivationContext activationContext)
       konum: Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       konum: System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       konum: System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       konum: System.Threading.ThreadHelper.ThreadStart()
  InnerException: 
CevapAlıntı
Gönderildi : 05/01/2013 12:09
Deniz YAZAR
(@DenizYAZAR)
Üye

aynı sorun suan bendede var ama hala bir çözüm bulmus değilim dogrusu.

CevapAlıntı
Gönderildi : 09/04/2013 03:41
Paylaş: