当我“按订单”的条款选择一系列从使用SQL Server 2005的表行,然后将它们插入到一个不同的(空)SQL Server 2005的表,我可以指望住在同一顺序的行。
我问的原因是我想用ADO.net操纵行。 我想在一个特定的顺序,以提高我使用ADO.net计算的速度行。
谢谢您的帮助。
当我“按订单”的条款选择一系列从使用SQL Server 2005的表行,然后将它们插入到一个不同的(空)SQL Server 2005的表,我可以指望住在同一顺序的行。
我问的原因是我想用ADO.net操纵行。 我想在一个特定的顺序,以提高我使用ADO.net计算的速度行。
谢谢您的帮助。
关系型数据库的无序集工作。 这些集合没有订单,除非你明确应用的顺序给他们。 如果你想在第二个表中的顺序相同,当你从第一个选择,那么你就需要应用相当于ORDER BY
子句。
当您插入将被保留的顺序,也不能依赖 - 在SQL Server中的一些事件可以重新排序表,包括添加聚集索引,或其他一些用户做一些事情(例如:插入#选择*,其中一些东西,截断表,插入到表SELECT * FROM#,所有不知情的情况下)。
正如约翰说,为了确保特定顺序的唯一方法是指定ORDER BY上的一些标识条款。
只是mindfull主键默认为聚集索引。 用作物理为了使数据被存储下来磁盘驱动器上这个聚簇索引。
如果你想提高速度,并具有对整个系统进行完全控制(和了解这样做的所有变化的影响),那么你可以看一下BY子句或索引的顺序(仅在极端情况)适用于那些clusted指数有序域。
有许多提供良好的洞察聚集索引,他们实际上意味着下哪些网站。