SQLServer2008でタイムアウト

このQ&Aのポイント
  • SQLServer2008を使用して大きなテーブルから保険者ごとの請求件数を取得したいがタイムアウトが発生してしまう。
  • タイムアウトが発生する原因は特定できないが、接続のタイムアウトを0に設定しても改善しない。
  • 目的の集計を行うためにインデックスを設定しているがタイムアウトが発生してしまう。
回答を見る
  • ベストアンサー

SQLServer2008でタイムアウト

SQLServer2008を使っています。 レセプトを入れた大きなテーブル(1000万行以上)から、何年何月にどの保険者(たとえば国保)に何件請求があったかを取り出したいと思います。 保険者は保険者番号(10桁前後の数値)、診療年月は200904のような形で入っています。 主キーになる項目はないので主キーは設定していません。 ManagementStudioにて保険者番号、診療年月に下記のコマンドでインデックスを設定しました。 CREATE NONCLUSTERED INDEX IDX_レセプト1 ON dbo.レセプト(保険者番号) CREATE NONCLUSTERED INDEX IDX_レセプト2 ON dbo.レセプト(診療年月) その後、目的の集計を行うべくManagementStudioで下記のSelectコマンドを実行しました。 SELECT 保険者番号, 診療年月, COUNT(保険者番号) AS Expr1 FROM dbo.レセプト GROUP BY 保険者番号, 診療年月 ところがタイムアウトになってしまうのです。 オブジェクトエクスプローラーで一番上のアイコンを右クリックし、プロパティで接続のタイムアウトを0に設定してみましたが改善しません。 どうしたらいいでしょうか。

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

DROP INDEX IDX_レセプト1 ON dbo.レセプト DROP INDEX IDX_レセプト2 ON dbo.レセプト GO CREATE NONCLUSTERED INDEX IDX_レセプト1 ON dbo.レセプト(保険者番号,診療年月) GO を試してみてください。

meglin888
質問者

お礼

できました。一瞬で戻ってきました。 前回の質問でもお世話になりました。 本当にありがとうございます。

関連するQ&A

  • インデックスのまとめ貼りと個別貼り

    いつもお世話になっております。 インデックスを貼るときに主キーのようにまとめて 設定することができますよね。 CREATE INDEX Idx原価 ON T原価 (商品名,発注番号); 上記のようにまとめて設定するのと CREATE INDEX Idx原価_商品名 ON T原価 (商品名); CREATE INDEX Idx原価_発注番号 ON T原価 (発注番号); このように2つに分けて貼るのでは意味は違ってくるのでしょうか? 商品名と発注番号の検索が別々に行われる場合は 分けて作成したら良いのでしょうか?

  • MySQLのUNIQUE INDEXとINDEX

    MySQLのUNIQUE INDEXとINDEXの使い分けで質問があります。 UNIQUE INDEXは、社員番号や学籍番号など重複がないものに対して使われ、 INDEXは名前のように重複が想定されるものに対して使われるのでしょうか? また、複数のカラムに同一のインデックスをつける場合、 CREATE INDEX idx_名前 ON 社員(氏,名) と言う感じになりますが 例えばこんなコード CREATE INDEX idx_名前 ON 社員(氏) and CREATE INDEX idx_名前 ON 社員(名) これはエラーになるんでしょうか?

    • ベストアンサー
    • MySQL
  • Accessのテーブルへ複数の主キーを設定するには

    Access2003のVBAを使って開発していますが、 サーバーから取得したローカルテーブルに 複数の主キーを設定したいのですが、うまくいきません。 ソースは下記です。 Dim db As Database Dim Tbdef As TableDef Dim Fld As Field Dim Idx As Index Set db = CurrentDb Set Tbdef = db.TableDefs("TWorker") Set Idx = Tbdef.CreateIndex("INDEX_WORKER") Idx.Fields.Applend Idx.CreateField("作業者番号") Idx.Fields.Applend Idx.CreateField("登録日時") ★ Idx.Primary = True Tbdef.Indexes.Append Idx ★行で落ちるというか、終了してしまいます。 1つの主キーなら設定できるのですが、 複数設定する方法をご教授いただけますか。 よろしくお願いします。

  • 医療事務の勉強中です。レセプトについての問題がわからなかったので質問で

    医療事務の勉強中です。レセプトについての問題がわからなかったので質問です。 月の途中で保険種別が変更となった場合、レセプトは保険者ごとの作成となると思います。 月の途中で保険者番号の変更があった場合は、どのように作成すればいいのでしょうか? 変更後の保険者番号によりレセプトを作成するのでしょうか?

  • SQLserver2000でプライマリーキーの設定でのエラー

    こんばんわ。 現在SQLの勉強をSQLserver2000でしているのですが、 SQL Enterprise Managerを使って、ある列に主キーを定義しようとして、鍵マークをつけて、保存しようとすると 以下のようなエラーがでて設定できません。 テーブル 'xxxxx' - インデックス 'PK_xxxxx' を作成できません。 ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server]インデックス ID 1 で重複したキーが見つかったので、CREATE UNIQUE INDEX は終了しました。もっとも重要な主キーは 'yyyyy ' です。 [Microsoft][ODBC SQL Server Driver][SQL Server]制約を作成できませんでした。以前のエラーを調べてください。 [Microsoft][ODBC SQL Server Driver][SQL Server]ステートメントは終了されました。 初心者なので、このエラーの意味するところが理解できません。 なにが間違っているのでしょうか。 よろしくお願いします。

  • 医療機関での保険の確認・月の途中で保険に変更のあった患者の場合

    月の途中で保険に変更のあった患者が同月2度目の来院時(保険が変わった後の来院)に保険が変わったことを伝えなければ、医事担当者は前回来院時の保険でレセコンに入力してしまうと思います。 このままレセプトを作成した場合、審査機関・保険者は2度目の診療分の不正をどのようにして察知するのでしょうか? レセプトには来院日までは記載されていないようなので2度目の来院日に先の保険が有効だったか知る術がないような気がするのですが、どのような仕組みになっているのでしょうか? また、不正が発覚した場合の2度目の診療の保険給付分は後の保険者に請求するのでしょうか?それとも患者に請求するのでしょうか? 例を挙げます。 2月1日 来院。社保の保険証を提示し診療を受ける。 2月15日 会社を退職し保険が国保になる。 2月28日 再来院。診察券のみ提示して診療を受ける。 3月1日 患者の2回分の診療を社保のレセプトに記載し支払い基金に提出。 よろしくお願いします。

  • 古いレセプトを探しています。

    訳あって古いレセプトを探しています。 30年ぐらい前に医者にかかった時のレセプトですが、当時の病院は院長が亡くなって既に閉院しています。 当時は政府管掌健康保険証を使っていました。 レセプトは社会保険診療報酬支払基金に渡り審査されると聞きましたが、問い合わせればあるのでしょうか? さらに、そのレセプトは保険者に送られるそうですが、政管健保の場合社会保険庁にあるのでしょうか? 病院のあったところの社会保険事務所でしょうか? 宜しくお願いします。

  • 個人の歯科医院のレセプト発行担当者と、返戻の割合

    個人歯科医院で受付のパートをしている者ですが、当院のレセプト発行&発送業務は全て私が一人でしています。(むか~し医療事務の資格はとりました)。 レセコンがあるので、返戻チェックと再請求、集計などが主な業務ですが、一ヶ月400件程度です。 これを受付業務を一人でしながら診療時間内(約4時間)、1~2日で仕上げて発送しないといけません。 返戻の多い月など処理に時間がかかると、受付業務も結構忙しいので、診療時間内に終わらない月があるのですが、当院の院長は「仕事は診療時間内に終わらせる!」が基本なので、「なぜ時間がかかる?」「なぜ返戻がある?どうして入力ミス(保険)がある?」と言われます。 返戻は少ない月は2~3件、多い月でも10件は超えたことはありません。注意はしているのですが、やはり保険の入力ミスや、患者さんからの申告がなく保険が変わってたりしてて、返戻はどうしても発生してしまいます。 最近、自分の仕事が遅いのか・・・それとも診療時間内にレセプトを処理するのに無理があるのか・・・他の医院はどうなのかと思い質問です。  ◆レセプト発行は誰がいつしているのか  ◆レセプト返戻の割合はどの程度なのか よろしくお願いします。

  • 鍼灸院での保険証提出について

    通っている鍼灸院で、保険証の提出を言われるようになりました。 何年か前までは、保険証の提出はなく、保険はきかないものだと思っていたのですが。 最近は、ほんの少し施術の内容が増えた気がしますが、料金は変わりません。 これは、保険を使うことによって以前よりも丁寧な診療が出来るようになったということなのでしょうか。 でもその場合、レセプトには何か他の病名などがかかれている可能性があるのでしょうか?

  • ■検索時に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