表中有一个type字段,值可能为1,2,3等,
现在我想获得
type值为1的记录数,
type值为2的记录数,
type值为3的记录数
作为绑定html控件的数据源
sql语句:
DECLARE @a INT,@b INT ,@c INT
SELECT COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=1
SELECT COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=2
SELECT COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=3
SELECT @a,@b,@c
接受数据的页面每刷新一次都要访问数据库,这种方法效率高吗?
我想的另一个思路是新建一个表typecount,用于保存type的各个值的记录数,然后建立触发器,向MarketInfo 表中插入信息时同时向typecount中插入信息
这样页面访问数据库时就不需要执行select count(*)语句,直接从typecount表中取出就行了
这两种方法那种好?
或者还有更好的方法?
现在我想获得
type值为1的记录数,
type值为2的记录数,
type值为3的记录数
作为绑定html控件的数据源
sql语句:
DECLARE @a INT,@b INT ,@c INT
SELECT COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=1
SELECT COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=2
SELECT COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=3
SELECT @a,@b,@c
接受数据的页面每刷新一次都要访问数据库,这种方法效率高吗?
我想的另一个思路是新建一个表typecount,用于保存type的各个值的记录数,然后建立触发器,向MarketInfo 表中插入信息时同时向typecount中插入信息
这样页面访问数据库时就不需要执行select count(*)语句,直接从typecount表中取出就行了
这两种方法那种好?
或者还有更好的方法?
SELECT @a=COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=1
SELECT @b=COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=2
SELECT @c=COUNT(*) FROM dbo.MarketInfo WHERE dbo.MarketInfo.type=3
SELECT @a,@b,@c
是这样子吧。可以像2楼说的使用缓存机制,并与数据库表建立依赖,每插入一条记录就更新缓存
(
@type int
)
return int
as
begin
declare @t int
select @t=count(*) from dbo.MarketInfo where type=@type;
return @t
end
SELECT distinct type,dbo.getcount(type) FROM dbo.MarketInfo根据创建的函数直接取就行了。
count(pk) 主键 会比 count(*) 速度快些
select 单个字段 会比 count(pk) 快些, 不过不明显.
你应用count(pk) 就可以了。
真想提速,应该应用缓存
<td align="center"> <asp:TextBox runat="server" ID="texbos_1"> </asp:TextBox> </td>
ID = RadioButtonList_x 着里的 X 怎么动态加上啊!!
还有就是 OnInit ="get_rbut_list" 中的 get_rbut_list 方法 能写成 OnInit ="get_rbut_list(参数名)"
帮帮忙!以后有分给加上!好吗?
每插入一条记录就更新缓存