Моя страница загружается медленно, я загружаю информацию из 2 гигантских просмотров данных, чтобы получить информацию об истории продаж, в таблицу. Я загружаю информацию, основанную на вчерашних продажах / числах. Я хочу кешировать данные, но как я могу это сделать, если мой запрос зависит от выбранного года и информации, которую хочет пользователь. Я думал, что будет лучше кэшировать страницы.
Если у вас есть какие-либо другие рекомендации, чтобы загрузить или сделать это более эффективным способом, пожалуйста, помогите.
Помогите ли я добавить параметр вместо моего dropdownlist.value в моем запросе?
saocmd.Connection = conn
conn.Open()
If RadioButtonList1.SelectedValue = "Sales" Then
saocmd.CommandText = "SELECT B603SalesAsOFMASTER.SDESCR, B603SalesAsOFMASTER.DYYYY, B603SalesAsOFMASTER.AsOFSales, B603SalesAsOFMASTER.ASOFPAX, B603SalesAsOFMASTER.YESales, B603SalesAsOFMASTER.YEPAX, B603SalesAsOFMASTER.PCTofSales, B601SalesAsOF.Sales AS CurrentSales, B601SalesAsOF.PAX AS CurrentPAX FROM B603SalesAsOFMASTER INNER JOIN B601SalesAsOF ON B603SalesAsOFMASTER.SDESCR = B601SalesAsOF.SDESCR WHERE (B603SalesAsOFMASTER.DYYYY =" & DropDownList1.SelectedValue & ") AND (B601SalesAsOF.DYYYY = (year( getdate() ))) order by B603SalesAsOFMASTER.SDESCR"
Label2.Text = "Sales"
ElseIf RadioButtonList1.SelectedValue = "NetSales" Then
saocmd.CommandText = "SELECT B603SalesAsOFMASTER.SDESCR, B603SalesAsOFMASTER.DYYYY, (ISNULL(B603SalesAsOFMASTER.AsOFNET,0)+ISNULL(B603SalesAsOFMASTER.AsOfOTHer,0)) as AsOfSales, B603SalesAsOFMASTER.ASOFPAX, (ISNULL(B603SalesAsOFMASTER.YENET,0)+ISNULL(B603SalesAsOFMASTER.YEOTHER,0)) as YESales, B603SalesAsOFMASTER.YEPAX, B603SalesAsOFMASTER.PCTofSales, (ISNULL(B601SalesAsOF.NETSales,0)+ ISNULL(B601SalesAsOF.OtherSales,0)) AS CurrentSales, B601SalesAsOF.PAX AS CurrentPAX FROM B603SalesAsOFMASTER INNER JOIN B601SalesAsOF ON B603SalesAsOFMASTER.SDESCR = B601SalesAsOF.SDESCR WHERE (B603SalesAsOFMASTER.DYYYY =" & DropDownList1.SelectedValue & ") AND (B601SalesAsOF.DYYYY = (year( getdate() ))) order by B603SalesAsOFMASTER.SDESCR"
Label2.Text = "Net Sales"
ElseIf RadioButtonList1.SelectedValue = "INSSales" Then
saocmd.CommandText = "SELECT B603SalesAsOFMASTER.SDESCR, B603SalesAsOFMASTER.DYYYY, ISNULL(B603SalesAsOFMASTER.AsOFINS,0) as AsOFSales, B603SalesAsOFMASTER.ASOFPAX, ISNULL(B603SalesAsOFMASTER.YEINS,0) as YESales, B603SalesAsOFMASTER.YEPAX, B603SalesAsOFMASTER.PCTofSales,ISNULL(B601SalesAsOF.INSSales,0) AS CurrentSales, B601SalesAsOF.PAX AS CurrentPAX FROM B603SalesAsOFMASTER INNER JOIN B601SalesAsOF ON B603SalesAsOFMASTER.SDESCR = B601SalesAsOF.SDESCR WHERE (B603SalesAsOFMASTER.DYYYY =" & DropDownList1.SelectedValue & ") AND (B601SalesAsOF.DYYYY = (year( getdate() ))) order by B603SalesAsOFMASTER.SDESCR"
Label2.Text = "Insurance Sales"
ElseIf RadioButtonList1.SelectedValue = "CXSales" Then
saocmd.CommandText = "SELECT B603SalesAsOFMASTER.SDESCR, B603SalesAsOFMASTER.DYYYY, ISNULL(B603SalesAsOFMASTER.AsOFCX,0)as AsOfSales, B603SalesAsOFMASTER.ASOFPAX, ISNULL(B603SalesAsOFMASTER.AsOFCX,0) as YESales, B603SalesAsOFMASTER.YEPAX, B603SalesAsOFMASTER.PCTofSales, ISNULL(B601SalesAsOF.CXSales,0) AS CurrentSales, B601SalesAsOF.PAX AS CurrentPAX FROM B603SalesAsOFMASTER INNER JOIN B601SalesAsOF ON B603SalesAsOFMASTER.SDESCR = B601SalesAsOF.SDESCR WHERE (B603SalesAsOFMASTER.DYYYY =" & DropDownList1.SelectedValue & ") AND (B601SalesAsOF.DYYYY = (year( getdate() ))) order by B603SalesAsOFMASTER.SDESCR"
Label2.Text = "Canceled Sales"
End If
'selects sql query
'saocmd.CommandText = "SELECT B603SalesAsOFMASTER.SDESCR, B603SalesAsOFMASTER.DYYYY, B603SalesAsOFMASTER.AsOFSales, B603SalesAsOFMASTER.ASOFPAX, B603SalesAsOFMASTER.YESales, B603SalesAsOFMASTER.YEPAX, B603SalesAsOFMASTER.PCTofSales, B601SalesAsOF.Sales AS CurrentSales, B601SalesAsOF.PAX AS CurrentPAX FROM B603SalesAsOFMASTER INNER JOIN B601SalesAsOF ON B603SalesAsOFMASTER.SDESCR = B601SalesAsOF.SDESCR WHERE (B603SalesAsOFMASTER.DYYYY =" & DropDownList1.SelectedValue & ") AND (B601SalesAsOF.DYYYY = (year( getdate() ))) order by B603SalesAsOFMASTER.SDESCR"
saoda.Fill(saods, "salesasoftable")
'does the math for the Percent of PAX
Dim pctofpax As New DataColumn
pctofpax = New DataColumn("PCTPAX1", GetType(Decimal))
pctofpax.Expression = "[ASOFPAX] / [YEPAX]"
saods.Tables("salesasoftable").Columns.Add(pctofpax)
'does the math for the average per passanger
Dim avgppax As New DataColumn
avgppax = New DataColumn("AVGPAX", GetType(Double))
avgppax.Expression = "CurrentSales / CurrentPAX"
saods.Tables("salesasoftable").Columns.Add(avgppax)
'gets the projected sales by dividing the currentsales by the percent of sales
Dim projectedye As New DataColumn
projectedye = New DataColumn("ProjSales", GetType(Double))
projectedye.Expression = "IIF([PCTofSales] = 0, [CurrentSales], [CurrentSales] / [PCTofSales])"
saods.Tables("salesasoftable").Columns.Add(projectedye)
'gets the projected amount of passangers by dividing the current amount of passengers by the percent of pax
Dim projectedyep As New DataColumn
projectedyep = New DataColumn("ProjPAX", GetType(Double))
projectedyep.Expression = "CurrentPAX / PCTPAX1"
saods.Tables("salesasoftable").Columns.Add(projectedyep)
'gets the difference between projected sales and current sales
Dim differencesales As New DataColumn
differencesales = New DataColumn("remainingsales", GetType(Double))
differencesales.Expression = "ProjSales - currentsales"
saods.Tables("salesasoftable").Columns.Add(differencesales)
'gets the difference in projected passengers and current passengers
Dim differencepax As New DataColumn
differencepax = New DataColumn("remainingpax", GetType(Double))
differencepax.Expression = "Projpax - currentpax"
saods.Tables("salesasoftable").Columns.Add(differencepax)
GridView1.DataSource = saods