ACCESSにインデックスというのがありますが、いまいち使い方がわかりません。
検索などが早くなることはわかるのですが、一つのフィールドにインデックスを設定して、そのフィールドを並べ替えたり、検索をかけたりしても、特にインデックス設定前と変わらないのですが・・・
設定方法や、インデックスの説明を書いてあるものは多いのですが、具体的な使い方が書いてあるものが少ないので、ぜひ、ご存知の方、インデックス設定後の使い方などを教えてください!

このQ&Aに関連する最新のQ&A

A 回答 (1件)

インデックスのあるなしでレコード検索が体感できるほど


速くなったことを確認するにはかなりたくさんのレコード
が必要だと思いますよ。
数十万程度のレコードでも数秒の違いはあるかもしれない
ですが、数百万以上レコードがあればかなり違うのが
わかると思います。

インデックスを使うという感覚は僕はあまりありません。
どちらかというと設計に関わる部分ですし、DB内部で
自動的に使ってくれますし。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q見出し用のインデックスラベル

帳簿などにつける見出し用のインデックスラベルを
パソコンで印刷したいのですが、
インデックスラベルのフォームがあれば、教えて下さい。

ワード、エクセル、アクセス、ファイルメーカーで
使えるものが希望です。

Aベストアンサー

ちょっと調べてみたところ、
テンプレートバンク(http://www.templatebank.com/)
というサイトを見つけました。

参考URLにあげたところからニチバンかヒサゴを選ぶと
インデックスラベルがあります。

参考URL:http://www.templatebank.com/bank/ca_list1.asp?ca=31

Qオートフィルタで一つの列で複数の検索条件設定方法

excel2000を使用しています。
ヘルプで見てみてもイマイチやり方が明確にわかりません。

ある一つの列に○、×、数字1~3が書いてあり、×と数字1の書かれた行だけを表示させたいんです。機能的に可能であることはヘルプを見てなんとなくわかるのですが、具体的に、まずどこをクリックして次にどこを~みたいな手順が見つからなくて困っています。すみません、どなたかご存知でしたら教えていただけませんでしょうか?他に必要な情報がありましたら補足いたしますので、お分かりになる方いらっしゃいましたらご回答よろしくお願いします!

Aベストアンサー

フィルタの▼をクリックして、
リストの「オプション」を選択します。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm

Qインデックスラベルの印刷方法について

インデックスラベル 20シート(240片)23×29mmのインデックスにパソコンを使って印刷したいのですがどうしたらいいでしょうか。

Aベストアンサー

再びReffyです。検索かけましたが自分でも見つけられなかったのでLionさんに聞きました!そうしたらなんと、こちらの会社ではDLサービスをやっていなかったそうです。
あったほうがいいですかね?と逆に聞かれてびっくりでした。なので、ごめんなさい、DLするという方法は無理のようです。かくなる上はWordソフトなどを使い、まず台紙のサイズを設定し、ラベルの縁だと数字が小さすぎるので文字始めの位置、文字終わりの位置までを入れて余白設定し、そこに打ち込むしか方法がないと思われます。

もしくは#3の方もかかれたようにエーワンならDLと利用も簡単なものがあるので、そちらでチェックしたのちラベルの再購入をご検討になる方が早いかも知れません。

Qエクセル 重複する値を横に並べ カレンダー化

教えてください。

エクセルで重複する検索値を横にならべる方法を探していて次のサイトを見つけました。

http://excel-forest.net/2016/07/19/not-vlookup/

基本的にやりたいことはこれなんですけど、この表を添付画像の用にカレンダーのように整えることは可能でしょうか?
○でなくても、日付がそのまま記載でもかまいません。

よろしくお願いします。

Aベストアンサー

私は「特に40代・男性」ではありませんが・・・
Sheet2!B2: =IF(SUMPRODUCT((Sheet1!$A$2:$A$14=$A2)*(Sheet1!$B$2:$B$14=B$1)),"○","")

Qインデックスシールの印刷。(ラベル屋さん)

インデックスシールを印刷しようと、ラベル屋さんを使用しているのですが、印刷がうまくいきません。

■シール⇒23mm×29mm(中)/12片×15シート
■プリンタ⇒エプソンPM-A750

用紙設定をしようとすると、このシートの大きさに該当するものがなく
ユーザー設定にしても、数値を入力するところが見当たりません。
(ハガキサイズより、1シートの大きさが小さいので、定規で測ってみたら縦13cm、横8cmでした)
ヘルプを見ても、わかりませんでした。
印刷の微妙な数値を設定しても、もとの用紙設定が違うせいかうまくいきません。
何か方法はありますか?

Aベストアンサー

シートの短辺がプリンターの設定できる用紙幅よりも短いから印刷できません。

ユーザー設定の用紙サイズは、一覧の一番下にありますので、それを選ぶと数値を入れる窓が開きます。

諦めてもう一回り大きなシートを用意してください。

ダメ元で良ければ130x89mmに設定して、印刷位置を微調整ですねぇ。
端のシールには印刷できないですけどね(^^;

Q用紙に合わせて設定と余白に合わせて設定の違い及び使い方

Word2007を使い始めたばかりです。

「ページレイアウト」タブ・「配置」グループ・「配置」にある「用紙に合わせて設定」と「余白に合わせて設定」の違いとそれぞれの使い方を教えてください。

Aベストアンサー

オートシェイプ図形、図、テキストボックスなどのオブジェクトを、レイアウトを「行内」以外で挿入・選択しておき、配置の用紙や余白に合わせて設定を選び、再度配置の左揃え、上揃え等を指定してみると、その違いが理解できると思います。

単一の描画オブジェクトだけでなく、複数オブジェクトを整列・配置する場合に、この配置機能を使用します。
ヘルプで「整列」と入力・検索し、「図、図形、テキスト ボックス、またはワードアートを整列または配置する」にいろいろ書かれています。
 

QINDEX(インデックス)のヘルメット

オークションなどを見ているとINDEX(インデックス)のヘルメットが、とても安く売られています。
(SHOEIの4分の1の値段)
性能はどうなんでしょうか?
日本の公道で使用できるのでしょうか?
どなたか教えてください。

Aベストアンサー

こんにちは!確かにINDEXはオークションでも安いですよね。INDEXは東南アジアや韓国で人気があるらしく、先日、タイに行った時、沢山売ってましたよ!INDEX・・・。しかもかなり安かった。(物価のせいもあるけど)

ただ、"elkheart"さんがどんなバイクに乗っているのかわかりませんが、想像するにレプリカ系かネイキッドだと思うんです。
バイク乗りって、見た目とかブランドとか、いわゆる"形"って重要じゃないですか…。
ARAIとかSHOEIとか見た目のデザインとかもカッコいいけど、ヘルメットに張ってあるブランドシールがかなり重要な気がしますよ。バイク乗りのステイタスっていうか・・・
INDEXと似たもので上野バイク街のコーリンさんにAGVというのもあります。あまりオークションじゃ出てないですけどね。
おまけに、見た目にこだわって、OGKっていうブランドもありますよ。ここのはかぶった感じも窮屈でなくて良かったですよ。下のページを参考にしてみてください!
いろいろ悩んでいいヘルメット購入してくださいね!
ご参考までに・・・

参考URL:http://www.ogkhelmet.com/ff4venom.html

こんにちは!確かにINDEXはオークションでも安いですよね。INDEXは東南アジアや韓国で人気があるらしく、先日、タイに行った時、沢山売ってましたよ!INDEX・・・。しかもかなり安かった。(物価のせいもあるけど)

ただ、"elkheart"さんがどんなバイクに乗っているのかわかりませんが、想像するにレプリカ系かネイキッドだと思うんです。
バイク乗りって、見た目とかブランドとか、いわゆる"形"って重要じゃないですか…。
ARAIとかSHOEIとか見た目のデザインとかもカッコいいけど、ヘル...続きを読む

QExcelのフィルタオプションの設定で検索条件範囲を複数設定するには

Excelでデータを抽出する「フィルタオプションの設定」について教えてください。

例えば,A列,B列,C列のように 複数の列に抽出条件が存在します。
どの列にも"A"~"Z"のアルファベットが入っているとして
「A列の値が"A"」or「B列の値が"A"」or「C列の値が"A"」つまり
A列~C列のどこかに"A"という値が入っている行を抽出したいのですが,よい方法を教えてください。
お願いします。

Aベストアンサー

OR条件は行を変えます
添付図参照

Q■検索時にINDEX(インデックス)がどう役立つのか?

いつもお世話になっております。
MySQLのカテゴリにて質問をさせて頂きますが、このことに意味はありません。
SQLにおける、INDEXの考え方を知ることができれば良いなと思っております。
SQLについては初心者ですので、分かりやすく教えて頂けると助かります。

では、本題へ。
-------------
あるデータテーブルの検索速度を上げる方法として、
INDEXを設定することもその1つに挙げられるかと思いますが、
あるテーブルにおける、ある列(フィールド)に対しINDEXを設定した場合、
検索時、それはどう利用されるのでしょうか、というのが質問です。

例えば、

会員データベース
・会員番号:id
・年齢:age
※その他、複数のフィールドを持つ、とする。

上記の会員データベースにおいて、
CREATE INDEX idx ON tbl_member(id);
という風に、tbl_memberテーブルに対し、
会員番号(id)をINDEXに設定したとします、
idは唯一無二の(ユニークな)データです。

この会員テーブルにおいて、
年齢(age)フィールドをもとに、40歳以上の会員を抽出(検索)したい場合、
INDEX(idが設定されている)はこの検索において、
どういう仕組みで活かされることになるのでしょうか?

ageと無関係のidが、どう役に立つのか分からずにいる、ということです。
ネット上で色々調べたのですが、
あるフィールドをINDEXに設定した場合に、
それが検索時にどう活かされるのかについて説明されているページを
私は見つけることができませんでしたので、質問させて頂きました。

どうぞ、宜しくお願い致します。

いつもお世話になっております。
MySQLのカテゴリにて質問をさせて頂きますが、このことに意味はありません。
SQLにおける、INDEXの考え方を知ることができれば良いなと思っております。
SQLについては初心者ですので、分かりやすく教えて頂けると助かります。

では、本題へ。
-------------
あるデータテーブルの検索速度を上げる方法として、
INDEXを設定することもその1つに挙げられるかと思いますが、
あるテーブルにおける、ある列(フィールド)に対しINDEXを設定した場合、
検索時、それはどう...続きを読む

Aベストアンサー

>MySQLのカテゴリにて質問をさせて頂きますが、このことに意味はありません。

特定のRDBMSに限定した話しでないなら、「その他(データベース)」カテゴリに質問してください。

>年齢(age)フィールドをもとに、40歳以上の会員を抽出(検索)したい場合、
>INDEX(idが設定されている)はこの検索において、
>どういう仕組みで活かされることになるのでしょうか?
>ageと無関係のidが、どう役に立つのか分からずにいる、ということです。

インデクスというか、書籍の索引と考えてもいいですが、索引とはどんな
ものか考えてみてください。
索引は、特定のキーワードをアルファベット順や五十音順に並べ、それが
どのページにあるかを示すものですよね?

id列の値が索引に載っていたとしても、ageの値は索引に載せるようにして
いないのだから、インデクスによる絞込みはできません。

次に、DBMSでの索引、つまりインデクスの実装方法について説明します。

多くのRDBMSで実装されている代表的なインデクスの構造として、B-TREE構造が
あります。

B-TREE構造と、その利用方法については、下記を参照してください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060113/227239/?ST=develop

なお、こういった内部構造、内部処理については、RDBMSによる違いがあるので、
特定のRDBMSを例にして説明されています。


インデクスが活用されるのは、例えば次のような処理です。

(1)「=」、範囲、LIKEの前方一致などの検索条件の場合のデータの絞込み
(2)ORDER BY、GROUP BY、DISTINCTなど、ソートが必要な処理
(3)COUNT、MAX、MINなどの集計(集合)関数
(4)重複チェック

なお、「表のデータ件数が少ない」場合や「重複データが多い」場合、RDBMSのオプティマイザが「インデクスを利用するより、表のデータを見た方が速い」と判断し、上記のような操作であってもインデクスを利用しない場合があります。
これは最終的には、利用者側の環境で、EXPLAINで確認する以外には「答え」はありません。

一方、insert、delete、updateでのインデクスのキー更新といった操作では、インデクスの更新がオーバヘッドとなるため、無闇にインデクスを多く定義すればいいというものではありません。

PRIMARY KEY、UNIQUEなど一意性を保証する表定義を行った場合も、重複
チェックを効率的に行うため、主要なRDBMSの実装では、内部的にインデクスを作成します。
また、RDBMSによっては、クラスタリング、クラスタ化などの名前で、インデクス上だけでなく、表のデータもキー値が近いものはなるべく近傍に格納するといった独自機能を実装している場合があります。


>たとえば、idフィールドであれば、大抵の場合、小さい値から大きい値へと
>プラス1ずつ増えていくでしょうから、基本的にソートする意味はなさそう
>なので、このフィールドをindexに設定する意味というのはなさそうなのかな?
>と感じました。

これは「一意なキー値を作るための手段の一つ」でしかなく、完全な思い込みです。
仮に昇順 or 降順で、+1 or -1 することを考えた場合、最大値または最小値を得るにはどういう処理が必要になるか考えてみましょう。
インデクスがなければ、「最新のデータは物理的に末尾に格納し続ける」といった制御が必要であったり、それが保証できないなら全件検索するしかありません。

>つまり、上の例で言えば、a~lまでを検索することなく、
>一気に「mから始まるデータ」から検索をスタートできるので

表のデータは、物理的な格納位置は保証されません。「最後に格納した行が必ず末尾に格納される」といった保証もされていないし、「キー値順に格納する」といったことも一部のRDBMSでの独自機能を使う以外には行われません。
したがって、インデクスがなければ、検索開始位置も停止位置も決められず、全件検索することになります。

>MySQLのカテゴリにて質問をさせて頂きますが、このことに意味はありません。

特定のRDBMSに限定した話しでないなら、「その他(データベース)」カテゴリに質問してください。

>年齢(age)フィールドをもとに、40歳以上の会員を抽出(検索)したい場合、
>INDEX(idが設定されている)はこの検索において、
>どういう仕組みで活かされることになるのでしょうか?
>ageと無関係のidが、どう役に立つのか分からずにいる、ということです。

インデクスというか、書籍の索引と考えてもいいですが、索引とは...続きを読む

Qピボットテーブルのフィールドリスト内の検索

あまり詳しくないので、説明もわかり辛いと思いますが、宜しくお願いします。

今作成しているのですが、ピボットテーブルで商品名のリストがあり、この商品名が1000件あります。
その中の三つ商品だけピボットテーブルで集計をしたいのです
商品名の▼をクリックして、『すべて表示』のチェックマークを外すと1000件のチェックマークが外れるのですが、
チェックを入れたい三つの商品名を簡単に探す事ができず、順に目で追っています。
簡単に検索できで集計したい商品名にチェックマークを入れる事はできますか?

Aベストアンサー

マクロでやってみます。「マクロはNG」というなら無理におすすめしませんが、マクロ以外では難しいと思います。

まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。
次にマクロの2行目と3行目を目的の名前に変更してください。(仮に列名を「商品名」、表示する商品は「机」「椅子」「本棚」としている箇所です。商品は半角カンマ区切りです。何個あっても構いませんが、その商品名がピボットテーブルにないとエラーになります)

マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro1()
Const fldName As String = "商品名" '対象となるフィールド名を指定
Const tItems As String = "机,椅子,本棚" '表示したい商品を半角「,」で区切る
Dim trg() As String
Dim psw As Boolean
Dim idx As Integer
  trg = Split(tItems, ",")
  If ActiveSheet.PivotTables.Count = 1 Then
    On Error Goto Err0
    Application.ScreenUpdating = False
    With ActiveSheet.PivotTables(1).PivotFields(fldName)
      For idx = 2 To .PivotItems.Count
        .PivotItems(idx).Visible = False
      Next idx
      For idx = 0 To UBound(trg)
        .PivotItems(trg(idx)).Visible = True
        If .PivotItems(1).Name = trg(idx) Then
          psw = True
        End If
      Next idx
      If Not psw Then
        .PivotItems(1).Visible = False
      End If
    End With
  End If
Err0:
  Application.ScreenUpdating = True
End Sub

ただしこのマクロはワークシート上にピボットテーブルが1つしかないことを前提にしています。実際にはそうでないなら補足してください。

マクロでやってみます。「マクロはNG」というなら無理におすすめしませんが、マクロ以外では難しいと思います。

まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。
次にマクロの2行目と3行目を目的の名前に変更してください。(仮に列名を「商品名」、表示する商品は「机」「椅子」「本棚」としている箇所です。商品は半角カンマ区切りです。何個あっても構いませんが、その商品名がピボットテーブル...続きを読む


人気Q&Aランキング