私たちはいくつかのGUIDをMS SQLデータベースに保存しています。 Guid.ToString()
を実行してからvarchar(64)
に渡すレガシーコードがあります。固有の識別子パラメータを使用してコードを渡す新しいコードがあります。 MS SQL Managementスタジオを使用して結果を見ると、彼らは異なって見えます。最初の3つのブロックのバイト順は逆ですが、最後のブロックは同じままです。どうして? SQL ServerではなぜGuid.ToString()はバイト順を逆にしますか?
8
A
答えて
8
UNIQUEIDENTIFIERフィールドをインデックス化することができ、そのため「後方」はあります。
GUIDはマシン固有の情報と「イベント時」の両方の情報から生成できます。
.NETのデフォルトGUIDはランダムですが、にextern呼び出しでそれからシーケンシャルGUIDを取得することができます。
[DllImport("rpcrt4.dll", SetLastError = true)]
static extern int UuidCreateSequential(out Guid guid);
これが連続しているあなたのMACアドレス(MSDN docs)に基づいて、あなたのGUIDを取得します。
あなたはこれらのシーケンシャルGUIDを.ToString()
なら、あなたは残りの部分が一定しながら、文字列の最初の部分は、異なる表示されます。
これは、GUIDの間の等価性チェックが速く(違いは開始時になるように)と切り捨てもののために変化を改善します。
列を検索するためのSQLServerは、電話帳や辞書と同様にインデックスを構築します。 "Over *"で始まる単語を検索する方が、 "* flow"で終わる単語を見つけるよりもはるかに迅速です。これは、前後にそれらを保存するように、SQL Serverの任意のシーケンシャルGUIDは、最初の繰り返し値を格納する必要があることを意味します。
関連する問題
- 1. NSDataの逆順バイト
- 2. なぜfputsとfprintfは逆のストリーム順
- 3. なぜPythonのリストの理解は逆順になりますか?
- 4. BaseAdapter.notifyDataSetChangedは要素の順序を逆順にします
- 5. HighChartsがシリーズの順序を逆にするのはなぜですか?
- 6. なぜDataOutputStream.writeUTF()は先頭に2バイトを追加しますか?
- 7. 逆順で配列をソートする - 逆順でない
- 8. バックボーンルーティングは、順方向か逆方向かを検出します
- 9. なぜmode_tは4バイトを使用しますか?
- 10. .Netネイティブコンパイルループが逆の順序であるのはなぜですか?
- 11. スレッドのメッセージが逆の順序で来るのはなぜですか?
- 12. は、アンドロイドのボタンのタイトルシャドウを逆順に実装します。
- 13. usortは逆順に配列を返します
- 14. awkは両方の行と単語を逆順にします。
- 15. WCF jsonはバイト配列の例外を逆シリアル化します
- 16. クライアントがバイトを受信しないのはなぜですか?
- 17. matlabのベクトルまたは行列の要素の逆順/逆順は?
- 18. 逆方向イテレータを順方向イテレータに変換できないのはなぜですか?
- 19. なぜread()は文字列ではなくバイトを出力しますか?
- 20. 配列を逆順にコピー
- 21. なぜTADOBlobField.Savetofileは8バイトしか書きません
- 22. ビットマップをバイトに変換するか、またはその逆に変換する
- 23. 逆順でアンピール
- 24. Ringミドルウェアの順序を逆にする必要があるのはなぜですか?
- 25. オブジェクトを作成の逆の順序で廃棄しますか?
- 26. 日付を逆順(d、m、y)で表示しますか?
- 27. エンディアンはバイト内のビット順序を参照できますか?
- 28. #defineとtypedefオペランドが逆になるのはなぜですか?
- 29. 私は数バイトのリークがあります - なぜですか?
- 30. このコードは逆の順序でスプライトを描画するのはなぜですか?