1)结果只有一条是用SELECT TOP 1效率更低?
对于只有一条结果的查询,下面哪一种快:
SELECT TOP 1 * FROM tablename where id=@id
SELECT * FROM tablename where id=@id2)以下两种查询方式,那种更快:
SELECT * FROM [视图(table a 和b的视图)]
SELECT A.*,B.* FROM tablename A inner join tablename B on a.id =b.id
对于只有一条结果的查询,下面哪一种快:
SELECT TOP 1 * FROM tablename where id=@id
SELECT * FROM tablename where id=@id2)以下两种查询方式,那种更快:
SELECT * FROM [视图(table a 和b的视图)]
SELECT A.*,B.* FROM tablename A inner join tablename B on a.id =b.id
关于这个问题, 可以参考我的blog
http://blog.csdn.net/zjcxc/archive/2006/07/10/898861.aspx
SELECT A.*,B.* FROM tablename A inner join tablename B on a.id =b.id这两者执行都是一样的,不管是视图还是sql查询都会产生执行计划.
不使用top 1也会搜索整个表以获取所有符合的记录。有没有办法达到top 1的效果却不需要搜索整个表?也就是找到第一条记录后就停止搜索返回结果
我这执行分析top 1操作没什么区别
特别是结果集比较大的时候,推荐用top操作
对于只有一条结果的查询,下面哪一种快:
SELECT TOP 1 * FROM tablename where id=@id
SELECT * FROM tablename where id=@id
應該是 SELECT * FROM tablename where id=@id 快
2)以下两种查询方式,那种更快:
SELECT * FROM [视图(table a 和b的视图)]
SELECT A.*,B.* FROM tablename A inner join tablename B on a.id =b.id
應該是 SELECT * FROM [视图(table a 和b的视图)] 快
事实上在数据量非常大的时候,我想两者肯定有区别
但不知道哪个更好