sql >> データベース >  >> RDS >> Database

回避策:クラスター化された列ストアインデックスを持つテーブルではカーソルはサポートされていません

    バージョン1.7.16では、Easysoft SQL Server ODBCドライバーは、アプリケーションの動作でクエリ結果のデータのサブセットのみが必要であることが示唆された場合に、クライアントカーソルの使用からサーバーカーソルの使用に変更されました。クライアントカーソルを使用すると、データベースは、クエリに応答するときに、単一の応答で完全な結果セットをドライバーに送信します。 1.7.16以降の動作は、この点でMicrosoftのSQLNativeClientがどのように動作するかも模倣しています。

    この動作のオーバーライドはバージョン1.8.10で追加されました。これは、アプリケーションが実際に結果セット全体を必要とする場合、サーバーカーソルが遅いため、サーバーカーソルを使用するとパフォーマンスに影響するためです。バージョン1.7.16での変更の別の結果は、SQLServerを搭載したLinuxでCognosを使用していたお客様から報告された問題です。クラスタ化された列ストアインデックスを使用してテーブルをクエリしようとすると、顧客は次のエラーを受け取りました:

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

    この機能を使用する場合、サーバーカーソルはサポートされないためです。回避策は、この行を/etc/odbc.iniのODBCデータソースに追加することにより、カーソルの以前の動作に戻すことでした。 :

    [SQLSERVER_SAMPLE]
    .
    .
    .
    OVERRIDE=65536
    

    1. SSMSのインストール方法

    2. 給与表から3番目またはnᵗʰの最大給与を見つける方法は?

    3. MySQLで文字列の左または右の部分を返す方法

    4. DistinctとGroupByのパフォーマンスが異なる場合はどうなりますか?