ソートおよびデフォルトのソート順序の行長エラー - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage
返す行をソートするためのソート操作を実行する場合、データベースにより、事前にソート キーが作成され、行に付加されます。ソート キーの長さがシステム上の行の最大長の1 MBを超えると、その操作はエラーを返します。表示されるエラー メッセージは、状況に応じて以下のいずれかとなります。
  • データ行が長すぎます。
  • database_object_nameの最大行長を超えました。

これらのメッセージについては、<Teradata Vantage™ - Databaseメッセージ、B035-1096>を参照してください。

更新を行なっていないのに、データ行とBYNETソート キーの合計が1 MBのスプール行サイズ制限を超えた場合、可能性として以下の原因が挙げられます。
  • システムのDBS制御フィールドのMaxDecimalの値が大きい値に変わったため。これにより、以前は、1、2、4、または8バイトであったDECIMAL列に格納されているバイト数が38バイトまで増加します。<Teradata Vantage™ - データベースの設計、B035-1094>と<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>を参照してください。
  • サイトが32ビットの位置合わせされた行のアーキテクチャから、64ビットのアーキテクチャのシステムにアップグレードされたため。このアップグレードは、ディスクとメモリの両方で、いくつかのデータ型のデータのサイズが大きくなります。この現象は、配列を8バイトの境界に入れなければならないというバイト境界制約によるものです。これらの制約は、32ビットのアーキテクチャにはありません。したがって、32ビットのシステムではスプール行の1 MBサイズの境界内に収まっていた行が、64ビットのシステムでは、その制限を超える可能性があります。

    お使いのシステムで、位置合わせされた行のアーキテクチャではなく、packed64行のアーキテクチャを使用している場合は、この問題は、関係ありません。詳細は、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。

デフォルトでは、列内の他のどのデータよりも先にnullがソートされます。言いかえると、nullは低いレベルにソートされるということです。たとえば、5、3、null、1、4、および2というフィールド集合をソートすると仮定します。

この値は次のようにソートされます。

     null
     1
     2
     3
     4
     5

デフォルトでは、文字式の結果の値は、現在のセッションで有効な照合順序を使用して昇順にソートされます。