sql >> Base de Datos >  >> RDS >> Database

Una solución alternativa para:los cursores no se admiten en una tabla que tiene un índice de almacén de columnas agrupado

En la versión 1.7.16, el controlador ODBC de Easysoft SQL Server pasó de usar un cursor de cliente a un cursor de servidor cuando el comportamiento de una aplicación sugería que solo necesitaba un subconjunto de los datos en el resultado de una consulta. Con un cursor de cliente, la base de datos envía el conjunto de resultados completo en una sola respuesta al controlador al responder a una consulta. El comportamiento de 1.7.16+ también imita cómo se comporta SQL Native Client de Microsoft en este sentido.

Se agregó una anulación de este comportamiento en la versión 1.8.10 porque si la aplicación realmente quiere el conjunto de resultados completo, el uso de un cursor de servidor tiene implicaciones en el rendimiento, ya que los cursores de servidor son más lentos. Otra consecuencia del cambio en la versión 1.7.16 es un problema que nos informó un cliente que usaba Cognos en Linux con SQL Server. Al intentar consultar una tabla con índices de almacén de columnas agrupados, el cliente recibió el error:

"Cursors are not supported on a table which has a clustered columnstore index"

ya que los cursores del servidor no son compatibles cuando se utiliza esta función. La solución fue volver al comportamiento anterior de los cursores agregando esta línea a la fuente de datos ODBC en /etc/odbc.ini :

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536