2009-12-03 31 views
0

其中,查询性能明智,更有效?
考虑到T是一个表,PK是表T中的主键。他们是不同的,或者他们只是一个选择的问题?使用和不使用游标的ProC中的SQL查询比较

select col1, col2 into :var1, :var2 
    from T 
where PK = a 

...或:

  1. EXEC SQL DECLARE aCursor CURSOR FOR选择COL1,COL2变成:VAR1,:在T VAR2,其中PK = A;
  2. EXEC SQL OPEN aCursor
  3. EXEC SQL FETCH aCursor

我想声明游标基于主键从表中读取单行做意义不大,如果单排可直接代替检索?

回答

1

如果只fecthing单行,我会使用游标,这似乎是在杀死

+0

是的,我同意你的看法,但这里的要点是考虑其他方面,如性能,有效性等。如果我需要根据主键选择值,我总是更喜欢不使用CURSOR。由于记录已经根据主键获取,因此单行将免费。 – 2009-12-03 07:08:24

0

SELECT INTO总是会比使用游标更快。

如果在光标打开时没有执行任何操作,根本没有必要使用光标。这是除了由PK搜索保证返回单行外,提供PK值存在于表中。

+0

的确,我确信在从表中选择列的同时,在主键列中存在相应的选定值 – 2009-12-03 07:06:00