问题很简单.哪个查询会更快:
SELECT TOP 1 value FROM table ORDER BY value
Run Code Online (Sandbox Code Playgroud)
要么
SELECT TOP 1 MIN(value) FROM table
Run Code Online (Sandbox Code Playgroud)
我们可以假设我们有两个案例,案例1.没有索引和案例2.有索引值.
任何见解都表示赞赏.谢谢!
有可能知道是否使用了发电机?即
def code_reader(code):
for c in code:
yield c
code_rdr = code_reader(my_code)
a = code_rdr.next()
foo(code_rdr)
Run Code Online (Sandbox Code Playgroud)
经过foo电话,我想知道,如果.next()是呼吁code_rdr通过foo与否.当然我可以通过一些带有next()调用计数器的类来包装它.有没有简单的方法呢?
我们有简单的表格:
CREATE TABLE dbo.test
(
c1 INT
)
INSERT INTO test (c1) VALUES (1)
INSERT INTO test (c1) VALUES (2)
INSERT INTO test (c1) VALUES (3)
Run Code Online (Sandbox Code Playgroud)
接下来计算一些SUM:
SELECT SUM(t1.c1) FROM test AS t1 , test AS t2
WHERE t2.c1 = 1
Run Code Online (Sandbox Code Playgroud)
输出为:6.简单易行.
但如果我跑:
SELECT SUM(t1.c1), * FROM test AS t1 , test AS t2
WHERE t2.c1 = 1
Run Code Online (Sandbox Code Playgroud)
输出是:
6 2 2
6 2 3
6 2 1
6 3 2
6 3 3
6 3 1
6 1 2 …Run Code Online (Sandbox Code Playgroud)