在SQLServer 2000的某数据库中有如下两张关系表: 学生表(学号,姓名,性别,系号),学号为主码 系表(系号,系名,系简称),系号为主码 ①在数据库中执行如下Transact—SQL代码: DECLARE @ DeptID varchar (10) DECLARE @cnt int set @cnt=0 DECLARE cursor1 cursor FOR SELECT 系号 FROM 系表 WHERE 系名 LIKE ’%电%’ OPEN cursor1 FETCH NEXT FROM cursor1 INTO @DeptID WHILE@ @FETCH_STATUS= 0 BEGIN DECLARE @temp_cnt int SELECT @temp_cnt=COUNT(*) FROM 学生表 WHERE系号=@DeptID set @cnt=@cnt+@temp cnt FETCH NEXT FROM cursor1 INTO @DeptID END CLOSE cursor1 DEALLOCATE cursor1 SELECT @cnt 执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此Transact-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。 ②设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率并说明原因。 SELECT*FROM学生表WHERE系号=’1’; SELECT*FROM学生表WHERE姓名=’张三’;