顧客文字列のあいまい検索について
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
matsu
投稿数: 16
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
顧客マスタから「山田」とか「鈴木」とか検索文字を入力し、該当する顧客を一覧表示を行いたいです。
Instr関数では処理が遅いので当フォーラムを参照したところ、Like関数の場合レスポンスが向上するとのことがあったので試したのですが、Instr関数を利用したときとほぼ変わらずの時間がかかりました。
マスタデータはサーバー側(Pervasive V11が起動中)に置き、クライアント(uniPaaS V1.9G2、Pervasive V11 WG起動中)側で実行しています。
何に問題があるのでしょうか?
解決策など教えていただきたいと思います。
Instr関数では処理が遅いので当フォーラムを参照したところ、Like関数の場合レスポンスが向上するとのことがあったので試したのですが、Instr関数を利用したときとほぼ変わらずの時間がかかりました。
マスタデータはサーバー側(Pervasive V11が起動中)に置き、クライアント(uniPaaS V1.9G2、Pervasive V11 WG起動中)側で実行しています。
何に問題があるのでしょうか?
解決策など教えていただきたいと思います。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
matsuさん、こんにちは。
Like()関数で処理が高速化されるのは、DBがSQL系列の
ものだけですね。
Pervasiveの環境では、Like()関数を使用しても、内部的な
動作はInstr()関数と変らないはずです。
機会があれば、SQLServerやOracleで試してみてください。
Like()関数で処理が高速化されるのは、DBがSQL系列の
ものだけですね。
Pervasiveの環境では、Like()関数を使用しても、内部的な
動作はInstr()関数と変らないはずです。
機会があれば、SQLServerやOracleで試してみてください。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
SQL ServerでMagicからINSTRでやってる検索をLIKE()にすると速くなるんですね。やってみたいと思います。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん、こんにちは。
Like() 関数は、実行時に SQL の Like 演算子に置き換えられ
ますので、超高速です。
神わざとしか思えないような処理が期待できますよ。(^^)/
Like() 関数は、実行時に SQL の Like 演算子に置き換えられ
ますので、超高速です。
神わざとしか思えないような処理が期待できますよ。(^^)/
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
LIKE を使う場所ですが
CTRL+R → 式 → 範囲 → 範囲式
データの項目名 LIKE TRIM(探したい文字)
という具合で正解でしょうか?
CTRL+R → 式 → 範囲 → 範囲式
データの項目名 LIKE TRIM(探したい文字)
という具合で正解でしょうか?
投票数:0
平均点:0.00
Kurogane
投稿数: 50
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
>nkmtさん
CTRL+R(範囲/位置付) → SQL Where句
で式にてSQL文を文字列で構築するか、DB SQL欄に直接記入すればいいかと
CTRL+R(範囲/位置付) → SQL Where句
で式にてSQL文を文字列で構築するか、DB SQL欄に直接記入すればいいかと
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Kurogane様、レスありがとうございました。
数日前に試してみたのですが、やり方が悪いのか
まだ成功しておりません。もう少し調べてみたいと思います。
数日前に試してみたのですが、やり方が悪いのか
まだ成功しておりません。もう少し調べてみたいと思います。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん こんにちは Puです
タスク環境==>範囲/位置付
==>式
==>範囲式
DBの項目 LIKE RTrim(入力値)&'*' <==後方一致
でわ〜でわ〜
タスク環境==>範囲/位置付
==>式
==>範囲式
DBの項目 LIKE RTrim(入力値)&'*' <==後方一致
でわ〜でわ〜
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん こんにちは Puです
タスク環境==>範囲/位置付
==>式
==>範囲式
DBの項目 LIKE RTrim(入力値)&'*' <==後方一致
でわ〜でわ〜
タスク環境==>範囲/位置付
==>式
==>範囲式
DBの項目 LIKE RTrim(入力値)&'*' <==後方一致
でわ〜でわ〜
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
puさん、こんにちは。
レスありがとうございました。
RTRIMする分の右側に予めワイルドカード*を付けて実験したら成功したら成功しました。
左側にも*を付けると、含む 検索になりますね。
kuroganeさんのおっしゃるDB SQLの方に書くと速いような気がしましたが、客先環境ではないのでなんとも言えませんが。
どうもありがとうございました。
レスありがとうございました。
RTRIMする分の右側に予めワイルドカード*を付けて実験したら成功したら成功しました。
左側にも*を付けると、含む 検索になりますね。
kuroganeさんのおっしゃるDB SQLの方に書くと速いような気がしましたが、客先環境ではないのでなんとも言えませんが。
どうもありがとうございました。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
nkmtさん、
単純に、A LIKE '*Magic*' とかの式で動作しますよ。
単純に、A LIKE '*Magic*' とかの式で動作しますよ。
投票数:1
平均点:10.00