- ベストアンサー
【緊急】ADO で SELECT * INTO aaa From bbb で時間切れになる原因は?
SELECT * INTO 新規テーブル From テーブル元 で、新しいテーブルを作る時に時間切れになってしまいます。 自分が思いつくことは テーブル元 のテーブルを誰かが つかんでいることぐらいなのですが、その様子はありません。 他に考えられる要因を至急教えて下さい! SQLSERVER2000 WINDOWS2000 テーブル元の件数が関係ありますでしょうか?
- GBSGBS
- お礼率36% (370/1012)
- その他(データベース)
- 回答数4
- ありがとう数1
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
件数が関係するか調べるのであれば、 SELECT * INTO 新規テーブル From テーブル元 WHERE 1=2 のように、ありえない条件を記述して空のテーブルを作ってみれば確認できます。 件数が多いというのであれば、単純にタイムアウトしているだけでは? 排他制御でロックがかかっているということはないんですよね?
その他の回答 (3)
- tuyota
- ベストアンサー率0% (0/1)
バックアップならbcpコマンド使ってみては? *.batにでもかいて実行してみてください。 bcp DB名..bbb out C:\bbb.txt -c -oC:\OUT1_bbb.txt -Sサーバ名 -Usa -P bcp DB名..aaa in C:\bbb.txt.txt -c -oC:\OUT2_bbb.txt -Sサーバ名 -Usa -P helpはBCPで検索してください
私も根本的な解決法ではありませんが・・・ バックアップツールを使ってはどうでしょうか? 参考URLの下法にSQLサーバ用のバックアップツールがあります。 #本当は商用のものを使用した方がいいのかもしれませんが・・・ 間違いがありましたらご指摘ください。 ではでは☆
- lucky-jam
- ベストアンサー率16% (3/18)
前に「Select * from Table」という形でレコードを取得した場合 取得件数が多くて正しく値が取れない場合がありました。その時 「*」を必要な列名だけにした場合にうまくいきました。 必要な分の列名を指定してみてはどうですか? ”解決”になってなくてすみません。
関連するQ&A
- SQL文が化ける(select * from が頭にくっつく)原因と対策を教えてください
VB6.0でADOを使用してSQLServer2005に接続しています。 あるSELECT文を取得条件だけ変更して連続して発行し、結果を変数に取り込むプログラムで、なぜか4000~5000件ごとにSQLがタイムアウトしてしまいます。 プロファイラで確認したところ、VB側で発行したSELECT文の頭になぜか「select * from」がくっついたSQL文が表示されます。 前後のSQL文は正しく動いており、SQL文が間違っているように思えません。 このような現象は、連続して発行するSQLの件数が少ないときは発生しませんでした。 【SQLの例】 VB側の送信 SELECT GP.ID番号, GP.KURA番号, GP.CR番号, GP.CRKYOKA, CR.READERNo FROM 区分 GP LEFT JOIN リーダ名 CR ON (GP.KURA番号 = CR.KURA番号 AND GP.CR番号 = CR.CR番号) WHERE ID番号 ='00AZ6535' SQLServer側(プロファイラ) select * from SELECT GP.ID番号, GP.KURA番号, GP.CR番号, GP.CRKYOKA, CR.READERNo FROM 区分 GP LEFT JOIN リーダ名 CR ON (GP.KURA番号 = CR.KURA番号 AND GP.CR番号 = CR.CR番号) WHERE ID番号 ='00AZ6535' 原因がわからず、修正もできず困っています。 アドバイスよろしくお願いいたします。
- ベストアンサー
- SQL Server
- SQLServer2000のselect文で
SQLServer2000のselect文で select count(*) from Table を実行するのに30秒以上かかってしまいます。 データ数は100万件もありません。 全件数を取得するのになぜこんなにかかってしまうのでしょうか? 主キーはVarcharの50バイトです。 こんな単純な文でこれだけかかってしまうのは、 DBの設定が悪いのでしょうか? それともPCの性能が悪いのでしょうか?
- ベストアンサー
- SQL Server
- SQLServerのあるデータベースの中にあるテーブルの件数をすべて調べたい時どうすれば?
Windows2000 SQLServer2000を使用しています。 あるデータベースの中にテーブルが100つぐらい あります。 その100ぐらいのテーブルの中にある それぞれのテーブルの中にある件数が知りたいのですが、 どうすれば分かるでしょうか? 表示をタスクパッドにすれば画面に表示できることは 知っているのですが、次へボタンを押すのが 面倒だし、ファイルに出力したいのであまり使えません。 どなたか何か分かる方、至急教えて下さい。 困っています。
- ベストアンサー
- その他(データベース)
- エージェントのジョブの遅さ
すいません、まだはじめたばかりで全然良くわからないのですが、 維持管理でこのSQL文で処理速度の遅さにひっかかっています。 自分で作ったものではないのでいまいちよくわかってないのですが、 エージェントのジョブで1日3回行っている処理、同じ件数(インデックスがまったく一緒)になるよう、INSERTをかける処理なのですが、 INSERT INTO TABLE_A SELECT AAA, BBB, CCC, 0, 0 FROM TABLE_B WHERE A + B + C NOT IN (SELECT A + B + C FROM TABLE_A) というようなTRANSACT SQLになっています。 TABLE_AにないものをTABLE_Bから持ってくるということだと思います。 件数は約13万件、なぜか1時間かかるようで、他の処理のレスポンスに影響が出てきています。 根本的にこういうやり方はまずいのでしょうか?処理を遅くする要因があるのでしょうか? もしあるようなら改善策を教えていただけると助かります。 環境はSQL SERVER 2005です。 どちらもA,B,Cにインデックスがあります ちょっと事情があって、大きくやり方を変えられないので、エージェントのジョブ内でもっと早くできる方法が知りたいです。 なにとぞ、よろしくお願いいたします。
- ベストアンサー
- SQL Server
- accessのSQL文で
SELECT 科目Aテーブル.学生番号, 名簿テーブル.氏名, 科目Aテーブル.成績 INTO 科目Aテーブル2 FROM 名簿テーブル INNER JOIN 科目Aテーブル ON 名簿テーブル.学生番号 = 科目Aテーブル.学生番号; (これはテーブル作成クエリによるもの) と表示されたのですが SELECT ~ INTO ~ FROM ~ ON ~ ; のような構文はSQLにあるのでしょうか? ACCESS独自の拡張でしょうか? SELECT ~ INTO とSELECTにINTOがつく構文をインターネットで探したのですが見つかりません
- ベストアンサー
- オフィス系ソフト
- SQL文について
開発言語:VB2010 DB:SqlServer2005 及び ACCESS2007 SQLサーバーのテーブルをAccessのテーブルへINSERTしたいのですが、 一文で行う事は可能でしょうか? (テーブルの構造は全く同じです) 同じDB内であれば、下記のような感じで出来ると思うんですが。 +----------------------------------+ INSERT into Atest_ACCESS SELECT * FROM Btest_SQL Where OperationDate => 2011/09/05 +----------------------------------+ 出来るのあればどのようにすれば良いのが教えて頂けると幸いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- テーブル名を[]でくくらないとエラーになってしまう
テーブル名を[]でくくらないとエラーになってしまいます sqlserver 2008 express edition を利用しているのですが テーブル名 やカラム名に[]でくくってSQL文を実行しないと エラーが出てしまいます 例えば select * from [table] の様にしないといけません これを select * from table で実行できるようにしたいのです どうしたらいいのでしょうか 会社ではsqlserver2005を利用しているので 2008からは[]でくくる必要になったのでしょうか それとも初期設定で何かしないといけないのでしょうか 設定方法を教えて下さい sqlserver management studio2008もインストール済みです
- ベストアンサー
- SQL Server
- select into句のトランザクションについて
お世話になってます。 sqlについて質問です。 ddlを発行するとトランザクションは暗黙的にコミットされると思いますが、 select into #temptable ・・・ のように、select into 句で一時テーブルを作成した場合、トランザクションはどうなるのでしょうか? また、以下のように一時テーブルと普通のテーブルで挙動は変わりますか? begin transaction select into #temptable from A ← ここでコミットされてしまう? …(1) select into temptable from A ← ここでコミットされてしまう? …(2) rollback transaction 以上、よろしくお願いいたします。
- ベストアンサー
- SQL Server
- Insert Into Select での重複について
DB:SQLServer2000 こんにちは お世話になっております。 トランザクションのテーブルA から ワークのテーブルBへInsert Into Select を使用してデータを格納しているのですが、その際に重複が発生してしまいます。 テーブルA 主キーあり テーブルB 主キーなし Delete B Insert into B select 項目1,項目2,・・・ from A With(Nolock) where 日付項目 = 20080101 テーブルAの主キー項目は全てテーブルBへInsertしており、Insert完了後のテーブルBの中身を見ると、まれに全く同じデータが2件出来ていることがあります。 このInsert into selectが実行されている間に、テーブルAに対して登録更新が行われることもあります。 色々と試してはいるのですが、原因が特定できずに困っております。 もし何かお気づきになられる方がいらっしゃいましたら、ご教示下さい。 よろしくお願い致します。
- 締切済み
- SQL Server
- SQLServerでのロックについて
SQLServerであるテーブルを行ロックしています。 (select * from テーブルA with (UPDLOCK) where KEYCD = 1) 行ロック実行時に、他のマシンが既にロックしていた場合、それをエラーとして返す方法はありますでしょうか? (Oracleでいう"nowait"のようなもの) 最近SQLServerをやりはじめたばかりの超初心者です。 よろしくお願いします(T_T)
- ベストアンサー
- SQL Server
補足
いや、参考になりました。ありがとうございます。 けれど、今テーブルをすべてバックアップしたいので 全項目が必要なのです・・・