Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果结果集太大,你可能会对它进行分页。关键是,你还不知道结果集有多大,所以在你知道结果集是否适合之前,将结果集强制放入内存是不明智的。它可能是巨大的,也可能是空的。在许多情况下,知道大小会改变您处理结果的方式(例如,如果您在内存中或分页处理,则分配客户端大_Sql_Odbc_Sqlncli - Fatal编程技术网

Sql 如果结果集太大,你可能会对它进行分页。关键是,你还不知道结果集有多大,所以在你知道结果集是否适合之前,将结果集强制放入内存是不明智的。它可能是巨大的,也可能是空的。在许多情况下,知道大小会改变您处理结果的方式(例如,如果您在内存中或分页处理,则分配客户端大

Sql 如果结果集太大,你可能会对它进行分页。关键是,你还不知道结果集有多大,所以在你知道结果集是否适合之前,将结果集强制放入内存是不明智的。它可能是巨大的,也可能是空的。在许多情况下,知道大小会改变您处理结果的方式(例如,如果您在内存中或分页处理,则分配客户端大,sql,odbc,sqlncli,Sql,Odbc,Sqlncli,如果结果集太大,你可能会对它进行分页。关键是,你还不知道结果集有多大,所以在你知道结果集是否适合之前,将结果集强制放入内存是不明智的。它可能是巨大的,也可能是空的。在许多情况下,知道大小会改变您处理结果的方式(例如,如果您在内存中或分页处理,则分配客户端大小的内存量等)。只有在您不了解系统业务知识或数据知识的情况下,您才知道结果集的大小。我希望海报对数据有一些概念。诚然,将自己束缚在这样一个有限的解决方案中是危险的。关于酸的好信息,而不是关于“自尊”的评论。许多SQL驱动程序执行查询服务器端,但


如果结果集太大,你可能会对它进行分页。关键是,你还不知道结果集有多大,所以在你知道结果集是否适合之前,将结果集强制放入内存是不明智的。它可能是巨大的,也可能是空的。在许多情况下,知道大小会改变您处理结果的方式(例如,如果您在内存中或分页处理,则分配客户端大小的内存量等)。只有在您不了解系统业务知识或数据知识的情况下,您才知道结果集的大小。我希望海报对数据有一些概念。诚然,将自己束缚在这样一个有限的解决方案中是危险的。关于酸的好信息,而不是关于“自尊”的评论。许多SQL驱动程序执行查询服务器端,但不会在同一个例程调用中返回整个结果集(即首先调用SQLExecute,然后调用SQLFetch以获取结果)。这通常对最终用户(例如NET Dataset)隐藏。我相信ACID概念中的隔离原则充分解决了我对方法2的担忧。如果我相信这些结果不会受到其他用户对数据库的查询的影响,我愿意使用这种方法。谢谢。这可能会使它成为一个相关子查询,这意味着它可能会为结果集的每一行执行子查询。一个不相关的子查询可能会被优化,所以它只需要运行一次;我不知道。在这种情况下,我建议使用一个由主查询和子查询共享的参数。不用问,这解决了我在您的第一个项目中的另一个好奇心:显然,如果可以优化计数查询,我不希望重复执行计数查询。对;我不是MS SQL Server优化器方面的专家,但如果它能够优化出这种相关子查询,我会感到惊讶。我更希望将结果包含在结果集中。但是,当我尝试在SQL中对我的表运行查询时,使用如上所述的OVER似乎不起作用。注意:如果仅选择前10行,OVER子句将不会是10。这将是完整的结果集,就好像查询中没有前10名一样。您如何处理这些需要原始数据和行计数的数据?如果你需要所有的原始数据(这是你正在选择的),你不能在读的时候数一数吗?如果不需要所有原始数据,那么不要选择它。计数只是为了分页吗?如果使用
READ COMMITTED
,计数可能会更改,对吗?或者SQL Server over ODBC模式的事务处理方式是否与T-SQL有所不同?
SELECT COUNT( my_table.my_col ) AS row_count
  FROM my_table
 WHERE my_table.foo = 'bar'
SELECT my_table.my_col
  FROM my_table
 WHERE my_table.foo = 'bar'
SELECT my_table.my_col, ( SELECT COUNT ( my_table.my_col )
                            FROM my_table
                           WHERE my_table.foo = 'bar' ) AS row_count
  FROM my_table
 WHERE my_table.foo = 'bar'
SELECT 
  mt.my_row,
 (SELECT COUNT(mt2.my_row) FROM my_table mt2 WHERE mt2.foo = mt.foo) as cnt
FROM my_table mt
WHERE mt.foo = 'bar';
BEGIN TRAN bogus

SELECT COUNT( my_table.my_col ) AS row_count
FROM my_table
WHERE my_table.foo = 'bar'

SELECT my_table.my_col
FROM my_table
WHERE my_table.foo = 'bar'
ROLLBACK TRAN bogus
DECLARE @dummy INT

SELECT my_table.my_col
INTO #temp_table
FROM my_table
WHERE my_table.foo = 'bar'

SET @dummy=@@ROWCOUNT
SELECT @dummy, * FROM #temp_table
SELECT my_table.my_col
  FROM my_table
 WHERE my_table.foo = 'bar'

SELECT @@Rowcount
SELECT my_table.my_col,
    count(*) OVER(PARTITION BY my_table.foo) AS 'Count'
  FROM my_table
 WHERE my_table.foo = 'bar'
SELECT my_table.my_col, count(*) OVER() AS 'Count'
  FROM my_table
 WHERE my_table.foo = 'bar'
IF (@@ROWCOUNT > 0)
BEGIN
SELECT my_table.my_col
  FROM my_table
 WHERE my_table.foo = 'bar'
END
WITH temptable AS
  (SELECT one,two
   FROM
     (SELECT one, two
      FROM table3
      WHERE dimension=0
      UNION ALL SELECT one, two
      FROM table2
      WHERE dimension=0
      UNION ALL SELECT one, two
      FROM table1
      WHERE dimension=0)
   ORDER BY date DESC)
SELECT *
FROM temptable
LEFT JOIN
  (SELECT count(*)/7 AS cnt,
                        0 AS bonus
   FROM temptable) counter
WHERE 0 = counter.bonus