(1)
1
(2)
create table (
a1 int,
a6 int,
a10 int,
Primary Key(a1, a6),
Constraint fk_PerOrders
Foreign Key (a1) References T1(a1),
Constraint fk_PerOrders
Foreign Key (a6) References T3(a6)
)
答案:
[1]Proc,Procedure
[2]output
[3]set
[4]sum
[5]a.房屋号=@room,b.房屋号=@room或@room=a.房屋号,@room=b.房屋号
【解析】
(1)由于是针对商品编号进行检索,所以为商品编号建立索引可以提高检索效率。
另外如果只针对本条select语句进行优化,那么还可以使用分区表的方式,将单价按照<=200和>200的关系分为两张表,也可以提高检索效率。
(2)由题可知,该触发器名叫AutoCountSum,是后触发型触发器,引发触发器执行的操作是插入(insert)和更新(update)。
该触发器执行时,会定义两个变量@UnitPrice和@Quantity,分别用来存储刚刚插入的单价和数量(因为是inserted表),并将销售单据明细表中对应记录的总价更新为@UnitPrice * @Quantity ,即单价*数量的值。
触发器的缺点是会消耗系统资源,如果频繁触发,对系统性能影响将会非常大。根据题中描述,系统运行一段时间后表中有近一千万条数据,说明插入操作非常频繁,所以触发器是导致插入速度慢的直接原因。只需要使用存储过程来替代触发器即可解决此问题,优化此表的插入操作。