0

所以我对同一张表进行了两个查询。查询有效,但我的结果回来有点慢。我还使用了两个不同的变量(Shipment_D2 和 Count_D2) 有没有更好的方法来组合多个查询,同时使用不同的变量,而不是每次进行查询时都打开一个新连接?

 <% 
Set rscount11 = Server.CreateObject("ADODB.Recordset")
sql = "SELECT Count FROM DivisionNew WHERE JMS_UpdateDateTime >= DATEADD(day,-7, GETDATE()) AND
JMSDay = '" & smDateArray (Weekday(date)) &"' AND Section = 'D2' order by JMS_UpdateDateTime desc" 
rscount11.Open sql, db

Count_D2 = rscount11 ("Count")

%>


 <% 
Set rscount12 = Server.CreateObject("ADODB.Recordset")
sql = "SELECT Shipment FROM DivisionNew WHERE JMS_UpdateDateTime >= DATEADD(day,-7, GETDATE()) AND
 JMSDay = '" & smDateArray (Weekday(date)) &"' AND Section = 'D2' order by JMS_UpdateDateTime desc" 
rscount12.Open sql, db

Shipment_D2 = rscount12 ("Shipment")

 %>
4

2 回答 2

3

select *如果您只需要计数,请不要使用。您正在将所有记录从数据库传输到内存中,这非常低效。让数据库为您完成工作。

您的第一个查询可以重写如下,其中数据库执行工作,您只将单个值检索到内存中,而不是潜在的巨大数据集。对第二个查询使用相同的方法。

SELECT Count(*) FROM DivisionNew WHERE ...
于 2013-08-14T16:52:41.600 回答
1

为什么不在 SELECT 查询中包含这两列?

 <% 
Set rscount11 = Server.CreateObject("ADODB.Recordset")
sql = "SELECT Count, Shipment FROM DivisionNew WHERE JMS_UpdateDateTime >= DATEADD(day,-7, GETDATE()) AND
JMSDay = '" & smDateArray (Weekday(date)) &"' AND Section = 'D2' order by JMS_UpdateDateTime desc" 
rscount11.Open sql, db

Count_D2 = rscount11 ("Count")
Shipment_D2 = rscount11 ("Shipment")

%>
于 2013-08-14T19:11:26.490 回答