• ベストアンサー

ビットマップ索引

Oracle8i Release 8.1.6.0.0 では、 ビットマップ索引は使えないのでしょうか? CREATE BITMAP INDEX ~ 文がエラーになってしまいます。

  • Oracle
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Oracle8.1.6iでは使用できたと記憶しております。 ただ、ビットマップIndexはEnterpriseEditionのみ でサポートされていたはずです。 WorkgroupEdition PersonalEditionの場合には 使用できないはずですので、 ご使用のOracleをご確認ください。

guest98
質問者

お礼

バージョンだけでなく、editionにもよるんですね。 回答ありがとうございました。

関連するQ&A

  • ORACLE 索引検索について

    ORACLE初心者で索引について勉強しています。 そこでORACLEの索引(Bツリー)検索について2点程質問させていただきます。 (1)索引を用いるとI/O処理が少なくなりアクセスが高速になるということはわかったのですが、そのI/O処理とはプロセスとメモリ間のやりとりに関するI/O処理という認識で間違いないのでしょうか? (2)索引付きと索引なしのカラムを抽出条件にして検索した場合、まず索引付きのカラムから検索を行い、そのROWIDを元に索引なしのカラムのデータを取得して対象データかどうかの判断を行うのでしょうか?

  • データベースの索引

    oracle masterの問題関連で質問があります。 一般的にデータベースで CREATE INDEX myind ON mytbl(a,b,c) と索引を作成した場合に SELECT a FROM mytbl ORDER BY a; この場合myindの索引は使用されるのでしょうか?

  • Oracleの追加した索引を利用しているのか確認。

    こんにちは。 Oracleの調整を行っています。 テーブルに対して索引を追加して、実行速度の改善を図ろうとしていますが、追加された索引がSQL文発行後に、正しく利用されているのかを確認したいと思っています。 暫く触っていなかったので、記憶だけですがDBA Studioにて確認できたと思って探していますが見当たりません。 別の方法での確認方法でも構いませんので、ご存知の方教えて頂けないでしょうか。 Oracle8iです。宜しくお願い致します。

  • OracleTextの索引再構築について

    Oracle10gを使っています OracleTextの索引はレコードの挿入や更新では自動的に更新されないとのことですが、それではどのタイミングで更新するのが適当なのでしょうか? サーバーの性能にも左右されるのでしょうが、できればレコードの挿入等の度に索引の再構築をしたいのですがパフォーマンスに問題ありでしょうか。 ちなみに、テーブルは1つ、索引をつけているカラムは6つ、それぞれ500文字程度の日本語、1時間に10件程度のレコード挿入です。挿入のたびに BEGIN CTX_DDL.sync_index('索引名'); END; を実行します。 また、再構築が同時に発生した場合はなにが起こるのでしょうか。 分かりにくい文章で申し訳ございません。テスト環境がないため本番環境で開発しているので自分で試してみることができず困っています。よろしくお願いします。

  • 索引のカラム定義変更(UX→PK)

    例)索引IX_aaaのカラムbbbにUX(一意制約)が付いているがあるとします。テーブルはccc このUXをPKに変更する場合はどのようなSQL文を書けばいいでしょうか? 私なりに考えてみたのですが、わからないのでご教授願います。 それと、変更した後で確認するselect文も教えていただきたいです。 (1) Drop index IX_aaa cascade constraint; Create index IX_aaa on ccc(bbb PRIMARY KEY) [TABLESPACE 表領域名]; (2)Alter table ccc MODIFY (bbb PRIMARY KEY);

  • 前方一致で索引(インデックス)が使用されない?

    社員表に対して、SQLを実行します。 (社員名)は任意の文字列です。 select syainNO from syain where deleteflg = '0' and syain_kubun = '2' and syain_mei like '(社員名)%'; 索引は以下の2つです。 // deleteフラグに対する索引・・・(a) create index syain_index_1 on syain ( deleteflg ) // 社員区分と社員名に対する索引・・・(b) create index syain_index_2 on syain ( syain_kubun, syain_mei ) deleteflgは0と1しか存在せず、0がほとんどです。 syain_kubunは1と2のみで、1が9割、2が1割程度です。 このとき、SQL実行時にトレースを分析すると、 (a)が使用され、(b)は使用されていません。 deleteflgとsyain_kubunのデータ分布からすると、deleteflg = '0'の条件により、 明らかに(b)の方が絞り込みを行えると思うのですが、使用されないのはなぜでしょうか? where syain_kubun = '2' and syain_mei like '(社員名%) ' and deleteflg = '0'; のように、条件の順番を入れ替えても効果はありませんでした。 試しにwhere句を変えてみると、(b)の索引が使用されます。 (likeをやめ、=を指定) where deleteflg = '0' and syain_kubun = '2' and syain_mei = '(社員名) '; この2つの違いは何でしょうか? 解決策として、以下を考えています。 (a)の索引は事情があって削除はできません。 (i)deleteflg = '0' を deleteflg != '1' にする  →(a)の索引が有効にならないようにする。   ただし、パフォーマンスに影響がないか (ii)deleteflg = '0' を条件から外す  →SQLを組み立てるjava側で、deleteflgの値によって   データ取得可否を判定するロジックが増えるのでちょっと。 これらの解決策に対するご意見、また、他に案がありましたら よろしくお願いします。

  • ビットマップ画像の色取得のご相談

    ビットマップ画像の色取得のご相談 WinXPでVC++2008ExpressEditionを使用してWinアプリケーションで画像処理をしようとしています.そこで,現在ビットマップのカラー画像を二値化(閾値判別分析法)するために,各色の抽出してグレースケール化を試みているのですが,色々試したのですがエラーがとれないので,もし間違い等ありましたら,ご助言いただけたらなと思います.何卒よろしくお願いいたします. 【エラー内容】 'System.ArgumentOutOfRangeException' のハンドルされていない例外が System.Drawing.dll で発生しました。追加情報: パラメータは正の値で、高さより小さい値指定しなければなりません。 【流れ】(ボタンを押したら以下三つを実行) 1.ファイルの読み込みピクチャーボックスに表示 2. ビットマップ画像の色の抽出 3. グレースケール化 /*ここから*/ OpenFileDialog^ OpenDlg = gcnew OpenFileDialog; //ファイルを開くダイアログ OpenDlg->Filter ="画像ファイル(*.bmp,*.jpg,*.jpeg,*.png,*.tif,*.tiff,*.ico)|*.bmp;*.jpg;*.jpeg;*.png;*.tif;*.tiff;*.ico"; OpenDlg->ShowDialog(); //ダイアログの表示 if (OpenDlg->FileName == "") { //ファイル名が指定されなかった場合 return; } Bitmap^ bmp; bmp = gcnew Bitmap(OpenDlg->FileName); //Bitmapをファイルより作成 pictureBox1->Image = bmp; //ピクチャボックスへ画像の表示 Bitmap^ bmp1 = gcnew Bitmap(pictureBox1->Image); unsigned char Image_in[480][640][3]; //Image_in[Y][X][3] unsigned char (*Gray)[640] = new unsigned char[480][640]; //(*Gray)[X] = new unsigned char[Y][X] double Y; int i, j; //iがY方向,jがX方向 Color color1; unsigned char R,G,B; // 赤,緑,青成分の抽出 for( i = 1; i < 480; i++) //Y方向 { for( j = 1; j < 640; j++) //X方向 { ////////////////////////////////////////////// /*この辺がエラーの原因だと思うのですが・・・*/ color1 = bmp->GetPixel(i,j); R = color1.R; G = color1.G; B = color1.B; Image_in[i][j][0] = R; Image_in[i][j][1] = G; Image_in[i][j][2] = B; } } //RGB to Gray カラー画像をグレースケール化 for( i = 0; i < 480; i++) //Y方向 { for( j = 0; j < 640; j++) //X方向 { Y = 0.299*Image_in[i][j][0] + 0.587*Image_in[i][j][1] + 0.114*Image_in[i][j][2]; Gray[i][j] = Y; } }

  • ビットマップを直接編集して背景画像を波打たせる

    質問(1) pixelsは一次元配列で1ラインのx方向の要素を左方向や右方向にシフト量sだけ離れた所へコピーすることにより1ラインの画像のピクセルデータをシフト量sだけずらして波打たせる効果を持たせていることは想像つきますが、これではy方向を考慮した全てのラインをずらすことにはなっていない様な感じがします。y方向はどうなっているのですか? 質問(2) int line = y*bmpdata.Stride/4;で4で割っているのは何故ですか? 質問(3) if(s<0){ //左へコピー for(int x=-s; x<BITMAP_W; x++){ if(x+s>=0){ pixels[line+x+s] = pixels[line+x]; } } } でこのif文の中の条件式x+s>=0はint x=-s;→int x+s=0;…;x++により明らかに常に真ではないですか?もし、そうだとしたらこのif文は必要ないのではないですか? 質問(4) } else if(s>0){ //右へコピー for(int x=BITMAP_W; x>=s; x--){ if(x+s<BITMAP_W){ pixels[line+x] = pixels[line+x-s]; } } } } でこのif文の中の条件式x+s<BITMAP_Wの意味が良く分かりません。 質問(5)(6)(7) for(int y=0; y<BITMAP_H; y++){ … int line = y*bmpdata.Stride/4;の意味が良く分かりません。質問(5) … pixels[line+x+s] = pixels[line+x];でlineを加えているのは何故ですか?質問(6) … pixels[line+x] = pixels[line+x-s];でlineを加えているのは何故ですか?質問(7) C言語、C++言語初心者なので分かりやすく教えて下さい。 宜しくお願いします。 プログラムコード(animation.cpp) //ウェーブエフェクト UINT g_wavecount; const int BITMAP_H = 480; const int BITMAP_W = 320; float g_wavelines[BITMAP_H]; //ウェーブエフェクト初期化 void ResetWave(){ g_wavecount = 0; float r=0, rdelta=3.14f/12;//波の数 float waveh = 3;//波の高さ for(int i=0; i<BITMAP_H; i++){ g_wavelines[i] = sinf(r) * waveh; r += rdelta; } } //ウェーブエフェクト描画 void RenderWave(Gdiplus::Bitmap *bmp){ g_wavecount++; int topline = g_wavecount % BITMAP_H; //ビットマップのロック Gdiplus::BitmapData bmpdata; Gdiplus::Status status = bmp->LockBits( &Gdiplus::Rect(0,0,320,480), Gdiplus::ImageLockModeWrite, bmp->GetPixelFormat(), &bmpdata); if(status != Gdiplus::Ok) return; UINT* pixels = (UINT*)bmpdata.Scan0; //←この行から下のコードが全部分からない。 //ビットマップを加工する for(int y=0; y<BITMAP_H; y++){ //シフト量を取得 int s = (int)g_wavelines[(topline+y)%BITMAP_H]; int line = y*bmpdata.Stride/4; //ピクセルコピー if(s<0){ //左へコピー for(int x=-s; x<BITMAP_W; x++){ if(x+s>=0){ pixels[line+x+s] = pixels[line+x]; } } } else if(s>0){ //右へコピー for(int x=BITMAP_W; x>=s; x--){ if(x+s<BITMAP_W){ pixels[line+x] = pixels[line+x-s]; } } } } bmp->UnlockBits(&bmpdata); }

  • オラクルインストール時のエラーについて

    http://otn.oracle.co.jp/software/products/oracle9i/index.html 上記ページでOracle9i Database Release 2 (9.2.0) for Windows トライアル版を選択し、(1)920win_d1.zip (2)920win_d2.zip (3)920win_d3.zip をダウンロードしました。 (1)を解凍し、(2)を解凍し、(3)を解凍して(2)に上書きしました。 (1)のフォルダの「setup.exe」を実行しました。 以下のエラーがでました。 「ライブラリの読み込み中にエラーが発生しました。」 generalQueries 何が間違ってるかわかりません。 以前にOracle(クライアント)がインストールされてたからその影響なのでしょうか?

  • ビットマップファイル生成(C言語)

    64個の整数(ピクセルの色データ)をファイルin.txtから読み込み、8×8のサイズのビットマップファイルout.bmpを生成するプログラムを作っていますが、なんだか良くわかりません。 64個の整数をすべて256にすれば青になると言われたのですが、黒になってしまいます。 一応ビルドと実行はできました。 自分で作ったソースは↓です http://www.geocities.jp/c_prog2011/file_2.txt 一応問題文は↓です http://www.geocities.jp/c_prog2011/bitmap_1.txt よろしくおねがいします。