和孙记录集的深度没有理论上的限制,但也不可能建立多于三级或四级的子记录集。
9.4.2 性能
数据整形不会自动改善性能,但正确使用时可以改善性能。重要的是记住其工作方式:
? 对于SHAPE命令中的SELECT语句,将完全取出表中的数据。SQL语句并没有得到任何优化。这样,如果在父表中加入WHERE子句来限制父记录集的记录数,仍能得到所有的子记录集。例如:
SHAPE {SELECT * FROM Publishers WHERE State='CA'}
APPEND ({SELECT * FROM Titles}
RELATE Pub_ID TO Pub_ID) AS rsTitles
APPEND语句返回所有的标题,并不仅限于加州(CA)的出版社。记住,这不是SQL JOIN语句。在加州的出版社以及所有的标题都被提取了,这样就完成了数据整形。
? 可以使用存储过程,这会提高一点性能。然而,如果使用一个参数化的存储过程产生子记录集,那么每次访问子记录集时,这个存储过程都会执行。这意味着,子记录集不在前端代码中编程产生,而是只包含存在存储过程产生的那么记录。不足之处是增加了服务器的工作,但这样却能保证数据是最新的,因为每次需要时就从数据库中提取数据。
在下一章当我们着眼于客户端数据时,会看到更多有关经过整形的记录集的介绍。
9.5 小结在下面两章以及本书的其余部分将看到相关的其他知识。在后续章节将详细探讨Web服务器与浏览器之间的交互。毕竟,仅有数据是不行的,还要让人们看见这些数据。
9.4.2 性能
数据整形不会自动改善性能,但正确使用时可以改善性能。重要的是记住其工作方式:
? 对于SHAPE命令中的SELECT语句,将完全取出表中的数据。SQL语句并没有得到任何优化。这样,如果在父表中加入WHERE子句来限制父记录集的记录数,仍能得到所有的子记录集。例如:
SHAPE {SELECT * FROM Publishers WHERE State='CA'}
APPEND ({SELECT * FROM Titles}
RELATE Pub_ID TO Pub_ID) AS rsTitles
APPEND语句返回所有的标题,并不仅限于加州(CA)的出版社。记住,这不是SQL JOIN语句。在加州的出版社以及所有的标题都被提取了,这样就完成了数据整形。
? 可以使用存储过程,这会提高一点性能。然而,如果使用一个参数化的存储过程产生子记录集,那么每次访问子记录集时,这个存储过程都会执行。这意味着,子记录集不在前端代码中编程产生,而是只包含存在存储过程产生的那么记录。不足之处是增加了服务器的工作,但这样却能保证数据是最新的,因为每次需要时就从数据库中提取数据。
在下一章当我们着眼于客户端数据时,会看到更多有关经过整形的记录集的介绍。
9.5 小结在下面两章以及本书的其余部分将看到相关的其他知识。在后续章节将详细探讨Web服务器与浏览器之间的交互。毕竟,仅有数据是不行的,还要让人们看见这些数据。