X



トップページDB@2ch掲示板
1002コメント327KB
Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/29(日) 16:50:08.13ID:dqKJQypQ
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/

過去スレとかめんどいから誰か適当に貼って
0157NAME IS NULL
垢版 |
2016/11/18(金) 08:05:35.18ID:???
リレーション絡んでると無理だけど
0158NAME IS NULL
垢版 |
2016/11/18(金) 08:14:49.18ID:mgIvH7zu
>>156
そんな初心者みたいなアドバイスするなよw
0160NAME IS NULL
垢版 |
2016/11/18(金) 12:53:12.29ID:???
>>156
1000万件中10万件だけ残したいとか
そういう時はそっちの方がいいよね
truncateは本当に爽快
0161NAME IS NULL
垢版 |
2016/11/18(金) 13:09:12.94ID:mgIvH7zu
初心者スレかよw
0162NAME IS NULL
垢版 |
2016/11/18(金) 13:35:15.03ID:???
だけど、>>156 以外に方法ないんだな、これが
あと、1回あたりのdelete数を減らしてやって(その分、何回も回して)
1トランザクションあたりのロックを多少なりとも緩和するか
0163NAME IS NULL
垢版 |
2016/11/18(金) 13:39:05.15ID:???
自分の場合、1億レコードが1000万件を退避させるとき
SET ROWCOUNT 指定して、小刻みに削除してる
(トランザクションログが一杯になるのを防止)

それでも平気で一晩とかかかるが
0164NAME IS NULL
垢版 |
2016/11/18(金) 13:41:35.56ID:mgIvH7zu
>>163
おまえの環境なんか知らねえよw
0165NAME IS NULL
垢版 |
2016/11/18(金) 13:48:32.20ID:???
じゃ具体的な打開策を示してみろよ
0166NAME IS NULL
垢版 |
2016/11/18(金) 18:52:28.15ID:???
・復旧モデルを完全から単純にする
・テーブルロックを明示して削除する
・クラスターインデックスをやめる
・インデックスをドロップしてから削除

全部やって遅いなら、ハードを速いのに変えろ
0167NAME IS NULL
垢版 |
2016/11/19(土) 10:21:04.31ID:???
具体的には何も言えないチキン ⇒ ID:mgIvH7zu
0168NAME IS NULL
垢版 |
2016/11/19(土) 10:29:48.42ID:???
パーティションテーブルにできるならそれにしちゃえば?
あれならパーティション単位にトランケート 出来るらしいが
0169NAME IS NULL
垢版 |
2016/11/19(土) 11:41:15.25ID:???
色々あるもんだね
0170NAME IS NULL
垢版 |
2016/11/19(土) 12:44:15.23ID:QTm9YLIS
>>167
質問した本人がいないからな。
0171NAME IS NULL
垢版 |
2016/11/19(土) 15:34:55.16ID:???
truncate table に where 書けたら解決なのにな
それか、delete に「Rollback不能で構いませんから速くやってください」って with 句を準備してくれるか
0172NAME IS NULL
垢版 |
2016/11/19(土) 21:17:15.83ID:???
ロールバック不能で良いっていっても、その文でのアトミックは保障しないとだめだからなぁ
0173NAME IS NULL
垢版 |
2016/11/19(土) 22:46:43.49ID:???
>>154
これの下の質問書いた者です
不具合ではなさそうなのがわかったのですがどうしたものかと質問です。

select 番号,sum(金額)
from テーブルA
inner join テーブルB on 〜
inner join テーブルC on 〜
inner join テーブルD on 〜
where 〜
group by 番号

これの実行プランがテーブルDとの内部結合前にgroup byとsumしててInt型の上限越えてしまいました
テーブルDとの内部結合を先にやってくれてたらそのデータが除外されて問題なかったのにっていう結果
whereとjoinとgroupby って優先順位特にないんでしたっけ
確実なエラー回避方法がBIGInt変換くらいしか思い付かない
0174NAME IS NULL
垢版 |
2016/11/19(土) 23:12:30.44ID:???
>>171
deleteも結局はページ単位の処理になるからね、消すだけじゃなくページ間のインデックスも保持しなきゃとかいろいろやってるから
全部いらないから細かいこと抜きでってできるtruncateのようにはいかないよ
0175NAME IS NULL
垢版 |
2016/11/20(日) 01:43:45.15ID:???
>>173
SQLは手続き型言語ではないので実行順序はオプティマイザが決めるってのが原則
ある程度はオプティマイザへの指示をクエリヒントって形で出せるけど

Dの結合を先にするようにサブクエリ書いてFORCE ORDER指定で行けるかもしれんが
そんなSQLは保守性わるいし、基本的にはどんな実行計画でもエラーにならんようにしろとしか
0176NAME IS NULL
垢版 |
2016/11/23(水) 10:58:15.12ID:???
>>163
1億レコードって物凄い大きなDBですか?
どんなシステムなのか見当もつかない
0177NAME IS NULL
垢版 |
2016/11/23(水) 15:31:19.70ID:RVwlvGQS
>>176
誰もが知ってる会社のシステムならその程度は珍しくもないけど。
0178NAME IS NULL
垢版 |
2016/11/23(水) 20:11:21.26ID:???
>>176
全然普通じゃん
どんな仕事してん?
0179NAME IS NULL
垢版 |
2016/11/23(水) 21:48:35.25ID:???
>>178
むしろお前にどんな仕事してるのかを聞きたいわ
0180NAME IS NULL
垢版 |
2016/11/24(木) 00:03:09.24ID:nZ9WujKe
スカート捲ってもらって股間の香り嗅ぎながらチンポ握ると五分で発射寸前だよ。
二十歳ぐらいの女の子のナマパンツに顔を埋めて拭き取り漏れのお尻の穴のリアルな香りを嗅いで好き放題シコる。
この状況で一時間持つ意味が分からん。
0181NAME IS NULL
垢版 |
2016/11/28(月) 14:13:26.04ID:???
更新しなくてSELECTだけのストアドがあります。
パラメータは3つです。

返ってくる行は30行程度で
クエリエディタから実行すると精々1〜2秒で戻ってきます。

クエリエディタでやってることと同様のものを
System.Data.SqlClient.SqlCommand で作って ExecuteReader してやるんですが
ExecuteReader が終わるまで15秒ほどかかります。
条件のよいとき(クエリエディタで1秒のもの)でも8〜9秒です。

いったい何が原因なのでしょうか。
0182NAME IS NULL
垢版 |
2016/11/28(月) 14:34:48.86ID:???
解決しました。

ALTER DATABASE データベース名 SET ARITHABORT ON
で算術アボートを有効にしてやったら、クエリエディタと同じになりました。
0183NAME IS NULL
垢版 |
2016/11/28(月) 14:56:49.87ID:???
ちょっと違ってました。

ALTER DATABASE データベース名 SET ARITHABORT ON
することで、クエリエディタと同じ速度になりましたが、
ADO.NET のときと同じ速度に、つまりは遅い方に揃ってしまいました。

ALTER DATABASE データベース名 SET ARITHABORT OFF
に戻したうえで、SqlCommand を投げるごとに
先に SET ARITHABORT OFF しておくと、早いクエリエディタと同じ速度になりました。

ゼロ割算の対策はしてあるつもりだし、むしろ NULL で進むよりエラーにしてもらったほうが嬉しいので
これはこれでいいのですが、全ての SqlCommand に埋め込まないといけないのか・・・
0184NAME IS NULL
垢版 |
2016/11/28(月) 15:26:31.97ID:???
>>181-182
テーブル変数とか使ってる?
実テーブルからだけのselectでも発生してる?
0185NAME IS NULL
垢版 |
2016/11/28(月) 15:54:51.04ID:???
テーブル変数を使ってたんですが、作業表(#〜)にしても一緒でした。
中身一緒かもしれませんが。
0186NAME IS NULL
垢版 |
2016/11/28(月) 16:07:15.48ID:???
>>185
テーブル変数つかうと、行数を正しく判定できないで遅いプラン作る事があるってのは聞いたことある
selectしてるとこにRECOMPILEヒント入れるとマシになるかも
当然リコンパイル分のパフォーマンス劣化はあるけど、遅いプランとどっちがマシか比べて
0187NAME IS NULL
垢版 |
2016/11/28(月) 16:19:19.41ID:???
ストアドの中のselect〜の末尾に option(RECOMPILE) 追加するんですよね?
試してみましたが、全く効果なく、事前の SET ARITHABORT ON を外すと元通り劇遅になりました。

ConnectionStringで SET ARITHABORT ON を指定できたらいいのですが。。。
0188NAME IS NULL
垢版 |
2016/11/28(月) 16:38:59.67ID:???
ARITHABORT OFFで遅い実行計画つくることがあるとはMSDNにも書かれてるけど
実際にそれが原因で問題のある実行計画作られたのは見た事ないなぁ
executeにWITH RECOMPILEつけても同じ?
これでダメなら、自分で適切なヒント付けてやればいいんだけど
そもそも実行計画の問題じゃない気もしなくはないな
0189NAME IS NULL
垢版 |
2016/11/28(月) 17:00:05.82ID:???
テーブルに単価のフィールドを持ってなくて、そのかわりに金額÷数量を単価とみなすビューを作ってあるんです
金額/nullif(数量,0) as 単価

それ利用してるもんだから、ゼロ割算の関係だとしたらビンゴなんですよ。
0190NAME IS NULL
垢版 |
2016/11/28(月) 17:12:45.91ID:???
以降は、君のブログで。
0191NAME IS NULL
垢版 |
2016/11/28(月) 17:20:38.36ID:???
SET NOCOUNT ON してる?
ほんとにSET ARITHABORT の問題なら、ストアドの中でSET ARITHABORT ON すれば良い
0192NAME IS NULL
垢版 |
2016/11/28(月) 17:30:39.39ID:???
>>191
SET NOCOUNT ON は基本やってます。
ストアドの中で SET ARITHABORT ON 明示してもいいんですか。

とりあえず今回気が付いたもの以外にも、気が付かないだけで潜在的に遅いものがありそうな気がしてまして
かつ、ストアドでなくソースの中でSQL吐いてるのもあって、
CreateCommand する直後で全て SET ARITHABORT ON したほうが良さそうな感じ。

http://www.sommarskog.se/query-plan-mysteries.html
が詳しいようです。
0193NAME IS NULL
垢版 |
2016/11/28(月) 17:32:01.75ID:???
いま注目してるストアドを相手にしたときは

SET ARITHABORT OFF で16秒
SET ARITHABORT ON  で2秒

くらいの違いがありました。
続けて何度か回しても結果は大差ないので、キャッシュの関係もなさそうだし・・・
0194NAME IS NULL
垢版 |
2016/11/28(月) 18:04:45.26ID:???
>>192
そこも、基本的にはオプションが違うと実行計画が違うよって話

実行計画うんぬん以前に、オプションで結果変わってるし
そのコードじゃゼロ割りの対策してないしw

キャッシュってのは、クエリプランのキャッシュのこと
データキャッシュとは別だから、何回回しても大差ないよ
0195NAME IS NULL
垢版 |
2016/11/28(月) 18:12:55.62ID:???
>>194
> そのコードじゃゼロ割りの対策してないしw
ど素人は黙っとけ
0196NAME IS NULL
垢版 |
2016/12/02(金) 13:29:12.92ID:???
col1  nvarchar(100)   Primary Key
col2  int  Primary Key, IDENTITY
con3  nvarchar(100)
の場合に
col1,col3の値を指定してinsertのつもりが、間違えてUpdateを実行したら
col1の値に等しい全ての行のcol1, col3が全部同じ値になってしまったのですが
そういうもんですか?
0197NAME IS NULL
垢版 |
2016/12/02(金) 15:28:09.53ID:???
どうやったらInsとupd間違うんだろう
where句なしで実行ってこと?
ORマッパーみたいなツールの話だろうか
0198NAME IS NULL
垢版 |
2016/12/02(金) 15:30:42.82ID:???
言ってる意味がわからないけど
col2がidentityならそれでユニークは保障されるから
col1とcol3が全部同じでもなんの不思議もない

どう間違えたらinsert文がupdate文になるのか知らんが
そういうSQL流したんだろ
0199NAME IS NULL
垢版 |
2016/12/02(金) 17:00:30.97ID:???
col1   col2    col3
Aさん    1    データ1
Aさん    2    データ2
Aさん    3    データ3
Bさん    4    データ4
Cさん    5    データ5
Cさん    6    データ6

col1   col2    col3
Aさん    1    データ1
Aさん    2    データ1
Aさん    3    データ1
Aさん    4    データ1
Aさん    5    データ1
Aさん    6    データ1
こんなふうになりました。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0200NAME IS NULL
垢版 |
2016/12/02(金) 17:54:06.99ID:???
update 表名
set col1 = 'Aさん',col3 = 'データ1'

以外でこうなるSQLを考えるクイズの時間です
0201NAME IS NULL
垢版 |
2016/12/02(金) 18:25:05.90ID:???
>>196
つか、そもそもそのテーブルのPKがおかしい。
0202NAME IS NULL
垢版 |
2016/12/03(土) 09:08:53.55ID:???
>>201
複合主キーじゃあないの?
どのあたりがおかしい?
0203NAME IS NULL
垢版 |
2016/12/03(土) 18:56:22.41ID:???
>>202
普通 Identity だけにしないか?
複合にする意図がわからん
0204NAME IS NULL
垢版 |
2016/12/03(土) 19:34:14.99ID:???
clo2は単にユニーク保障のためだけで、実質はcol1+連番がキーなんだろ
そういう意図を表すためには複合主キーで良いんじゃね

あくまでcol2単独の検索はしない前提たが
インデックスがcol1からの(クラスタ化)インデックスひとつで済むってメリットもあるかもしれんw
0205NAME IS NULL
垢版 |
2016/12/03(土) 20:22:19.14ID:???
>>204
> そういう意図を表すため
いやその「そう言う意図」がイミフなんだが
0206NAME IS NULL
垢版 |
2016/12/04(日) 10:31:37.61ID:???
>196
のような手法は一般には使わないの?
0207NAME IS NULL
垢版 |
2016/12/04(日) 10:45:59.24ID:5zb5esCr
insertのつもりでupdateしてしまう手法のことか?
0208NAME IS NULL
垢版 |
2016/12/04(日) 11:20:07.32ID:???
>>196 のような手法
って言うのが Identity + 他の何か を複合キーにすると言う話なら俺は見たことはない
むしろ >>207 の言ってる方がまだあり得る
0210NAME IS NULL
垢版 |
2016/12/15(木) 15:38:31.31ID:???
調べものしててmsdnのサイト見てたら2016の次にVNextとかいうのがでてた
早いなあと思ってたら2016のSP1が既に出てて驚愕
Microsoftなんか焦ってる?
0211NAME IS NULL
垢版 |
2016/12/17(土) 16:44:00.77ID:???
linux版はvNext相当だっけ
0212NAME IS NULL
垢版 |
2016/12/21(水) 10:18:02.84ID:???
VPSでSQL SERVER EXPRESS 2016を使う場合には最低限どんなスペックが必要かな?
運用中の人がいたらCPU数、メモリGBなどアドバイスが欲しい。
0213NAME IS NULL
垢版 |
2016/12/21(水) 18:43:55.62ID:???
規模も用途も書かんのなら、公式の動作環境以上の回答があるとは思えんが
0214NAME IS NULL
垢版 |
2017/01/18(水) 23:26:29.67ID:???
カーソルのFAST_FORWARDって内部で何してるの?
INSENSITIVEやFORWARD_ONLYだとmaxdop数分のスレッドでカーソルオープンしてるのに、FAST_FORWARDだと1dopになる
クエリは単一テーブルのselect文で、group by、order by句がある
msdnのカーソルのとこ読んだけどわかんなかったよ
ちな2014のsp2です
0215NAME IS NULL
垢版 |
2017/02/01(水) 11:41:06.33ID:???
入門書としておすすめの書籍ある?
0216NAME IS NULL
垢版 |
2017/02/03(金) 18:34:25.46ID:0GL48OMF
2014でレプリケーションができないです
配布元のデータができないです
リカバリする方法ないでしょか?
0218NAME IS NULL
垢版 |
2017/02/04(土) 19:51:14.97ID:???
sql サーバーってマルチコアcpuで実行すると並列で処理されてレスポンス速くなったりするの?
0221NAME IS NULL
垢版 |
2017/02/04(土) 23:23:46.43ID:???
レスポンス変わるだろうけど、ディスクアクセスの要素のほうが強くて条件次第では大幅に、とはいかなそうね
0222NAME IS NULL
垢版 |
2017/02/05(日) 02:38:35.83ID:???
2016 express版を使っています。
20万件くらいのテーブルから全件をorder byして取り出すだけで
20秒くらいかかるんです、そんなもんですか?
0223NAME IS NULL
垢版 |
2017/02/05(日) 07:46:27.65ID:???
>>222
なんにもしなきゃそんなもんでしょ
0224NAME IS NULL
垢版 |
2017/02/05(日) 08:10:32.76ID:???
>>223
速くする方法を教えて下さい。
データは1時間に一回くらい更新されるので、例えばその時にorder byした
データを作成しておけば良いかなあと思うのですが、そういう方式で速くなりますか?
0227NAME IS NULL
垢版 |
2017/02/05(日) 09:07:02.46ID:???
>>225
なんですかそれは?
>>226
ああ、勘違いでした。
order byしてもしなくてもクエリ自体は一瞬で終わっていました。
時間が掛かるのは
C#でDataTableにloadで読み出しているところでした。
1行が1KBくらいのデータ
200,000行なので、200MBくらいのデータを読み出している計算になりますか。
その場合、20秒くらい掛かるもんですか?1秒以内くらいにできますか?
0231NAME IS NULL
垢版 |
2017/02/07(火) 11:16:26.90ID:???
sql serverとsql server express は速さは違うのでしょうか?
0235NAME IS NULL
垢版 |
2017/02/07(火) 12:57:17.68ID:???
>>231
条件による
使えるメモリーとかコア数違うから
0237NAME IS NULL
垢版 |
2017/02/07(火) 18:00:30.07ID:???
なんだこのアホなやりとりは
0238NAME IS NULL
垢版 |
2017/02/07(火) 19:31:44.18ID:???
レス古事記だろ
スルーでいいよ
0239NAME IS NULL
垢版 |
2017/02/21(火) 14:26:23.03ID:???
updateするときに、違いがなかったらupdateされないようにしたいです。
(トリガーで履歴を取っているのと、timestamp列が無駄に変わるのを防ぎたいため)

そこで、updateのwhereに
binary_checksum(項目1,項目2,項目3,・・・)<>binary_checksum(@項目1,@項目2,@項目3,・・・)
ってのを追加してます。

概ねいいんですが、かなり単純な条件でコンフリクトが発生しました。
bit型の項目1と項目9があって、項目1:1→0,項目9:0→1 のとき、binary_checksumが一緒になるという・・・

HashBytes だと () の中に複数の項目が書けません。
binary_checksumみたいな () に複数項目が書けるもので、もうちょっとコンフリクト起きにくいなにかないですか。
0240NAME IS NULL
垢版 |
2017/02/21(火) 14:48:31.75ID:???
>>239
コンフリクトの使い方間違ってるんじゃないか?

それはともかく、単純にwhere old_item1 <> new_item1 or old_item2 <> new_item2 or ...
ってやるのは駄目なのか?
0241NAME IS NULL
垢版 |
2017/02/22(水) 08:27:45.48ID:???
binary_checksumがどうやって計算してるかしらんが、たとえば単純なsumだったら
(1,0)と(0,1)が同じ値になるのは当然だわな
素直に全項目比較する方がいいんじゃね

どういう状況かわからんが、本来はホストアプリ側で更新する(UPDATE発行する)かどうか判断するべきだと思うけどな
0242239
垢版 |
2017/02/22(水) 10:07:47.80ID:???
ありがとうございます。
仕方ないので
where ・・・ and (binary_checksum(項目1)<>binary_checksum(@項目1) or binary_checksum(項目2)<>binary_checksum(@項目2) ・・・)
という風にやりました。
HashBytesにしなかった理由は、項目1つならコンフリクトの可能性が低いと判断したためです。
(演算の軽いほうで)
0243NAME IS NULL
垢版 |
2017/02/22(水) 21:31:00.62ID:???
SQLServerを使用したいと思っているのですが、全くの無知なので教えて頂きたいです。

現在、accessを使用しています。
接続人数は3人(3台)で、バックエンドデータを1つ作成しフロントエンドを3台に配布してリンクテーブルを使って使用しています。
最近、同時接続時にクエリ実行が遅くなってきて困っています。

このバックエンドデータをSQLServerに移し、ODBC接続でリンクすればクエリ速度等は解決するのでしょうか?
また、SQLServerに移行したとしてもフロントエンドのacceesでは同じようにクエリやVBAでテーブルの印刷処理やクエリでの更新等も特に設定などを変えずにそのまま使用出来るのでしょうか?

初歩的なことだと思うのですがよろしくお願いします。
0244NAME IS NULL
垢版 |
2017/02/22(水) 21:55:11.78ID:???
>>243
とりあえずやってみると良いよ
費用かからないし
しかし今時こんなが環境あるんかな
20年くらい昔によくあったやつ
0245NAME IS NULL
垢版 |
2017/02/22(水) 23:17:15.03ID:???
>>243
アップサイズは全部が全部改善するとは限りませんが基本的には改善します
下の方が書かれている様に、まずやってみると良いですよ
これくらいか〜と体感できますので

ODBCリンクであれば基本的にフロントのAccessはそのまま使用できます
SQL Serverは文字コード、ソート順、キー、インデックス
くらいは確認しておいた方が良いですよ
0246NAME IS NULL
垢版 |
2017/02/23(木) 12:33:19.21ID:???
>>244
>>245
有り難うございます。
バックエンドをSQLServerに移行すると、フロントエンドでのVBAやクエリでの処理が今まで通り使えるのかが分からずに悩んでいました。

基本的には、バックエンドがacceesファイルからSQLServerに替わっても、特に編集し直すこともなくフロントエンドを使用することが出来るで大丈夫ですか?
0247NAME IS NULL
垢版 |
2017/02/23(木) 14:40:40.20ID:???
>>246
.mdb or .accdbでODBC接続なら編集不要だと思うけど
SQL SERVERの照合順序は気を付けて
照合順序はアプリ側の実装に依存するから自力で調べて
0248NAME IS NULL
垢版 |
2017/02/23(木) 18:48:24.75ID:???
>>247
助言有り難うございます。
accdbなのでそのまま使えそうです。

とりあえず、SQLServerをインストール、accessデータをインポートしODBC接続までしました。
何故かテーブルデータをフロントエンドのaccessで編集出来なかったのですが、主キーが設定されてないのか、ファイアーウォールがまだ未設定だからなのか調べ中です。

疑問なのですが、
10万件のデータがあり、1件のデータを更新したい為に、単純な更新クエリを作成したとします。
単純な更新クエリなので抽出や選択もなく、10万件の全てのデータが更新されます。つまり9万9999件は無駄な更新です。
これをaccessデータのリンクテーブルではかなり時間がかかりますが、SQLServerでのリンクテーブルでは数秒で処理が終わるほど変化があるのでしょうか?
それとも、このような無駄なクエリではあまり速度は変わらず、クエリ自体を考え直すべきなのでしょうか?
0249NAME IS NULL
垢版 |
2017/02/23(木) 20:18:10.72ID:???
>>248
テーブル編集はSQL Server Management Studioを使うか、DDL直接投げるか
単純なUPDATEなら10万レコードだろうが一瞬で終わるよ(※データ量次第)
0250NAME IS NULL
垢版 |
2017/02/23(木) 20:51:17.86ID:/7OWtulZ
思わせぶりな※
0251NAME IS NULL
垢版 |
2017/02/23(木) 21:19:27.58ID:???
>>248
昔のAccessしか知らないけど
主キー無い場合はテーブルリンク作成時にキー項目選択するとかだったはず
当然可能なら主キーは設定すべきだけど

「9万9999件は無駄な更新」ってのが意味不明
何万件あろうが更新対象が1件の場合は1件しか更新しないよ
その場合の更新は文字通り一瞬で終わる
0252NAME IS NULL
垢版 |
2017/02/23(木) 22:30:45.12ID:???
>>249
フロントエンドのフォームでテーブルのデータは編集出来ないのでしょうか?
>>251
私の勘違いでしょうか。
いつも日報等で更新したいデータはカレントレコードの1件なのですが、更新クエリを使うと〜万件(全件)のデータを更新します、と表示されて、数分かかります。
クエリはフィールドAが空白ならフィールドBに"合格"の文字、フィールドAが空白以外なら"不合格"の文字を入れる、というクエリです。
これでは全レコードがクエリの対象になっていると解釈すべきですか。
0253NAME IS NULL
垢版 |
2017/02/24(金) 02:51:11.36ID:???
>>252
テーブル開いてデータ変更できるよ
更新権限のないユーザーで接続してると思う
0254NAME IS NULL
垢版 |
2017/02/24(金) 06:17:19.75ID:???
>>252
このロジックだったら全件更新だよ

以下なら2件の更新になるよ
それでも時間かかる場合はAとBのインデックスを作成すれば一瞬で終わる
Aが空白でBが合格以外の場合は、Bに合格を入れる
Aが空白以外でBが合格の場合は、Bに不合格を入れる
0255NAME IS NULL
垢版 |
2017/02/24(金) 07:23:35.87ID:???
>>252
> いつも日報等で更新したいデータはカレントレコードの1件
そのレコードを抽出する選択クエリを作成すればいいだけじゃね?
0256NAME IS NULL
垢版 |
2017/02/24(金) 11:13:40.64ID:???
>>252
>全レコードがクエリの対象になっていると解釈すべきですか
どんなクエリ(SQL)流したかとどんなテーブル(インデックス)だったか分からんと分からん
が、全件読み込んでる可能性が高いなぁ

>>254
クエリの検索条件にACCESSの関数入れたりしたら全件取得するかもしれんぞ

メインはサーバ側の話じゃなくてACCESSの動作の話だし
ACCESSのスレ探すが作るかして移動したほうが良いんじゃね
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況