Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
oguzkaygun
Yak Posting Veteran
53 Posts |
Posted - 2009-01-18 : 07:28:57
|
Helloi use below code and storedprocedure for count of records.. if records count be almost 300-400 in 1.000.000 records related to where statements, i see results so fast.. but if records count be 4000-5000 in 1.000.000 records related to where statements, i see record so slow.. sometimes it give me error that time is finished..Error line is sqlCmd.ExecuteNonQuery().. Why if records count is 4000 or 40.000, my code runs slow ? it runs for 1.000.000 records for both of condition..My StoredProcedure is below..ALTER PROCEDURE dbo.StoredProcedure8(@ilanturu varchar(18),@kategori varchar(23),@kategori1 varchar(48),@kategori2 varchar(55),@garantidurumu varchar(26),@sifirikinciel varchar(17),@kargoucreti varchar(17),@sehir varchar(30),@tfiyat money,@tfiyat1 money,@fiyat money,@fiyat1 money,@aktifilan bit,@TotalRecords int output)/* (@TotalRecords int output) @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ASSET NOCOUNT ON SET Statistics io ON /* SET NOCOUNT ON */ SELECT @TotalRecords = Count ([urunnumarasi])FROM urunlistesiWhere ((@ilanturu is null) or (ilanturu = @ilanturu))and ((@kategori is null) or (kategori = @kategori))and ((@kategori1 is null) or (kategori1 = @kategori1))and ((@kategori2 is null) or (kategori2 = @kategori2))and ((@garantidurumu is null) or (garantidurumu=@garantidurumu))and ((@sifirikinciel is null) or (sifirikinciel=@sifirikinciel))and ((@kargoucreti is null) or (kargoucreti=@kargoucreti))and ((@sehir is null) or (sehir=@sehir))and ((@tfiyat is null) or (tfiyat>=@tfiyat))and ((@tfiyat1 is null) or (tfiyat<=@tfiyat1))and ((@fiyat is null) or (fiyat>=@fiyat))and ((@fiyat1 is null) or (fiyat<=@fiyat1))and ((@aktifilan is null) or (aktifilan = @aktifilan)) RETURNmy page.aspx is below..Dim conn As String = ConfigurationManager.ConnectionStrings("urunlerCS").ConnectionString Dim mySqlConn As New SqlConnection(conn) Dim TotalRowCount As Integer Dim sqlCmd As SqlCommand = New SqlCommand Dim paramTotalEvent As SqlParameter = New SqlParameter sqlCmd.Connection = mySqlConn sqlCmd.CommandType = CommandType.StoredProcedure sqlCmd.CommandText = "StoredProcedure8" Dim ccid1 As SqlParameter = sqlCmd.Parameters.Add("@ilanturu", SqlDbType.VarChar, 18) ccid1.Direction = ParameterDirection.Input If ilanturu.Text = "Tüm Ilanlar" Then ccid1.Value = DBNull.Value Else : ccid1.Value = ilanturu.Text End If Dim ccid22 As SqlParameter = sqlCmd.Parameters.Add("@kategori", SqlDbType.VarChar, 23) ccid22.Direction = ParameterDirection.Input ccid22.Value = aramal1.Text Dim ccid2 As SqlParameter = sqlCmd.Parameters.Add("@kategori1", SqlDbType.VarChar, 48) ccid2.Direction = ParameterDirection.Input If aramal2.Text = "" Then ccid2.Value = DBNull.Value Else : ccid2.Value = aramal2.Text End If Dim ccid3 As SqlParameter = sqlCmd.Parameters.Add("@kategori2", SqlDbType.VarChar, 55) ccid3.Direction = ParameterDirection.Input If aramal3.Text = "" Then ccid3.Value = DBNull.Value Else : ccid3.Value = aramal3.Text End If Dim ccid4 As SqlParameter = sqlCmd.Parameters.Add("@garantidurumu", SqlDbType.VarChar, 26) ccid4.Direction = ParameterDirection.Input If GarantidurumuDDL.Text = "Hepsini Göster" Then ccid4.Value = DBNull.Value Else : ccid4.Value = GarantidurumuDDL.Text End If Dim ccid5 As SqlParameter = sqlCmd.Parameters.Add("@sifirikinciel", SqlDbType.VarChar, 17) ccid5.Direction = ParameterDirection.Input If urundlDDL.Text = "Hepsini Göster" Then ccid5.Value = DBNull.Value Else : ccid5.Value = urundlDDL.Text End If Dim ccid6 As SqlParameter = sqlCmd.Parameters.Add("@kargoucreti", SqlDbType.VarChar, 12) ccid6.Direction = ParameterDirection.Input If kargoucretiDDL.Text = "Hepsini Göster" Then ccid6.Value = DBNull.Value Else : ccid6.Value = kargoucretiDDL.Text End If Dim ccid7 As SqlParameter = sqlCmd.Parameters.Add("@sehir", SqlDbType.VarChar, 30) ccid7.Direction = ParameterDirection.Input If sehirDDL.Text = "Hepsini Göster" Then ccid7.Value = DBNull.Value Else : ccid7.Value = sehirDDL.Text End If Dim ccid8 As SqlParameter = sqlCmd.Parameters.Add("@tfiyat", SqlDbType.Decimal) ccid8.Direction = ParameterDirection.Input If pfiyatltb.Text = "" Then ccid8.Value = DBNull.Value Else : ccid8.Value = Decimal.Parse(pfiyatltb.Text) End If Dim ccid9 As SqlParameter = sqlCmd.Parameters.Add("@tfiyat1", SqlDbType.Decimal) ccid9.Direction = ParameterDirection.Input If pfiyatltb0.Text = "" Then ccid9.Value = DBNull.Value Else : ccid9.Value = Decimal.Parse(pfiyatltb0.Text) End If Dim ccid10 As SqlParameter = sqlCmd.Parameters.Add("@fiyat", SqlDbType.Decimal) ccid10.Direction = ParameterDirection.Input If fiyatltb.Text = "" Then ccid10.Value = DBNull.Value Else : ccid10.Value = Decimal.Parse(fiyatltb.Text) End If Dim ccid11 As SqlParameter = sqlCmd.Parameters.Add("@fiyat1", SqlDbType.Decimal) ccid11.Direction = ParameterDirection.Input If fiyatltb0.Text = "" Then ccid11.Value = DBNull.Value Else : ccid11.Value = Decimal.Parse(fiyatltb0.Text) End If Dim ccid12 As SqlParameter = sqlCmd.Parameters.Add("@aktifilan", SqlDbType.Bit) ccid12.Direction = ParameterDirection.Input ccid12.Value = "True" paramTotalEvent.ParameterName = "@TotalRecords" paramTotalEvent.Direction = ParameterDirection.Output paramTotalEvent.DbType = DbType.Int16 paramTotalEvent.Size = 50 sqlCmd.Parameters.Add(paramTotalEvent) sqlCmd.Connection.Open() sqlCmd.ExecuteNonQuery() sqlCmd.Connection.Close() TotalRowCount = sqlCmd.Parameters("@TotalRecords").Value ilansayisiL.Text = TotalRowCount.ToString |
|
|
|
|
|
|