と列の値で始まる場合:12345678チェック文字列は、私は現在、私のデータベースにこのテーブル(MYTABLE)を持っている最高のパフォーマンス
:私のプログラムで
user start
----------------------------
Adam 12345
Alex 123
Benny 2345
は、私は、ユーザーからの文字列、例えばを受け入れます私の目標は、私が
を使用している今のように、ユーザ入力がmyTable.Start-- For example, it would be great to have something like:
select * from myTable where "12345678".startsWith(start)
-- and returns me Adam, 12345 & Alex, 123
で始まる行を選択することです210
select user, start
from myTable where charindex(start, "12345678") = 1
order by start desc
私はこの場合直接比較を行っていないのでインデックス作成の開始が役立つかどうかはわかりませんが、絶対的なひどいパフォーマンスでは、MyTableの行数は約です。
誰でもこれを達成するためのより良い方法を知っていますか?
私の '開始'は常にユーザーの入力よりも短く、 '12345678%'は絶対に '12345'を返していません –
あなたが求めるのは、各行に新しいパターンを作成して文字列に一致させることです。これはインデックスを利用できません。 –