数据查询方法的比较

查寻方式

缺点

优点

Locate

会从数据来源中下载所有的数据,如果数据表中包含大量的数据,那么执行效率会很缓慢,而且容易造成客户端的当机

查寻数据的执行效率保持稳定的结果,而不管要查寻的数据是否已经存在于结果数据集中,而且没有其他的副作用

使用CloneCursor

如果欲查寻的数据不在结果数据集中,那么仍然会下载数据表中所有的数据,而且表现的比直接使用Locate等方法还缓慢

如果欲查寻的数据已经存在于结果数据集中,那么它可以避免下载所有的数据,并且能够快速地找到查寻的数据

使用CloneCursorSQL语句加AppendData

可能会发生重复数据的副作用

提供最快的查寻效率,不管数据是否在结果数据集中,或是后端数据来源中。同时下载的数据量最少,网络的负荷最轻

使用拷贝数据

程序必须拷贝一些额外的数据

可以提供比直接使用Locate等方法更好的查寻效率,同时没有CloneCursor方法的缺点,也没有CloneCursorSQL语句的副作用



附加说明:SQL 中提高查询速度的方法。

子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。
如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行了一个全表遍历。

建立合理的索引,避免扫描多余数据,避免表扫描!
几百万条数据,照样几十毫秒完成查询.
posted @ 2008-06-06 14:04  陆岛工作室  阅读(...)  评论(...编辑  收藏