X



トップページDB@2ch掲示板
1002コメント327KB
Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0100NAME IS NULL
垢版 |
2016/10/24(月) 03:35:16.10ID:???
ていうか俺自身が方々で数十倍〜数百倍にスピードアップさせてきた業者だからw
0101NAME IS NULL
垢版 |
2016/10/24(月) 03:47:25.19ID:???
>>98
生SQLとストアドって言ってるんだけど、何が全く同一なのか?

推定実行計画は必ずしも実際の実行計画なわけじゃないぞ

ストアド内の個々のSQLの、実際の実行計画って簡単には確認できなかった気がするなぁ
だれか簡単なやり方しってる?
0102NAME IS NULL
垢版 |
2016/10/24(月) 03:53:11.18ID:???
何が問題だったかわからんけど、とりあえず不要かもしれんインデックス追加して直りましたってか
パフォーマンスチューニングやる業者のレベルとしては信じられんな
0103NAME IS NULL
垢版 |
2016/10/24(月) 05:57:49.84ID:???
>>94
>replaceの必要性がわからんが
deleteしてinsertを一つのコマンドで実行したいからじゃねえ?
0104NAME IS NULL
垢版 |
2016/10/24(月) 07:59:00.21ID:???
文字列型のカラムで
2016/10/24 12:34:56
2016/1/2 2:3:5
のように桁がバラバラなのですが、それを
2016/10/24 12:34:56
2016/01/02 02:03:05
のように
YYYY/MM/DD HH:MM:SS
に揃えるSQL文を教えてください。
0105NAME IS NULL
垢版 |
2016/10/24(月) 09:01:09.32ID:???
>>101
dm_exec_query_statsにある情報でいいんかな
dm_exec_query_plan、dm_exec_sql_text組み合わせてステートメント単位でとってこれるよ
カーソルオープンは厳しかったと思うけど

生SQLが早いってことは検索条件に変数使ってるとかかね
分布が特異な偏りしてるインデックスをストアドで使うなら、with recompileつけるのが推奨だったと思う
ヒント文つけてもいいけど
0106NAME IS NULL
垢版 |
2016/10/24(月) 20:28:53.01ID:???
>>104
一旦日付型にCASTしてからフォーマット
つか特殊な要件が無ければ、DB上は日付型で保持してホストアプリ上で表示変換させた方が良いぞ

>>105
>dm_exec_query_plan、dm_exec_sql_text組み合わせ
それ見ても、どのプロシジャなのか探すのが大変だからなぁ
0107NAME IS NULL
垢版 |
2016/10/24(月) 21:24:42.51ID:???
>>106
>104
日付を文字列で保管するとどういうデメリットがありますか?
0108NAME IS NULL
垢版 |
2016/10/24(月) 21:34:11.43ID:???
>>106
dbidとobjectidで引っ張ってくればいいじゃない
うちはバックアップとかみたく自動で定期的にとるよう運用に乗っけてるよ
リリースして遅くなったなんてときにかなり重宝する
0109NAME IS NULL
垢版 |
2016/10/24(月) 21:39:15.61ID:???
>>107
orderbyとかwhere条件が大変
変換噛ましてやれないことはないが、そのぶんだけおそくなる
それにデータサイズも文字型のほうが大きくなる
0110NAME IS NULL
垢版 |
2016/10/24(月) 21:42:26.11ID:???
>>109
なるほど。
でも日付型は1750年以降くらいしか保持できないそうですが、それで
問題は出ないのですか?
0111NAME IS NULL
垢版 |
2016/10/24(月) 21:49:30.87ID:???
>>107
文字列で持ってたら、日付計算どうすんだよ

>>110
日付型って言っても色々あるから
dateかdatetime2使え
0112NAME IS NULL
垢版 |
2016/10/24(月) 21:52:59.93ID:???
>>111
>日付計算
このデータに関しては日付の計算をする予定はありません。
>dateかdatetime2使え
紀元前を扱うにはどうするのでしょうか?
0114NAME IS NULL
垢版 |
2016/10/24(月) 21:54:49.77ID:???
>>112
後はどういった要件があるのかな?
0116NAME IS NULL
垢版 |
2016/10/24(月) 22:07:49.71ID:???
>>115
どういった目的で紀元前を扱いたい?
扱うとは具体的にどういった処理をする?
0117NAME IS NULL
垢版 |
2016/10/24(月) 22:31:02.56ID:???
>>116
紀元前を扱う目的はその年代の年月日をデータで保管したいから。
日付の計算はしない。
それだけ。
0119NAME IS NULL
垢版 |
2016/10/26(水) 00:41:26.43ID:???
てきとーにアンインストールしたら次から全然インストールできんくなった...助けて
0120NAME IS NULL
垢版 |
2016/10/26(水) 01:21:01.81ID:???
インストールログみて止まってるとこでググる
システムの復元でアンインストール前に戻す
OSから入れ直す
なにも情報ないからこれくらいしか言えない
0121NAME IS NULL
垢版 |
2016/10/26(水) 12:44:47.05ID:???
ットアップが失敗しました。
クリーンアップが必要ですってポップアップがでてきます..
0122NAME IS NULL
垢版 |
2016/10/28(金) 08:12:24.68ID:???
なんとか、再インストールできやした。あざした。
0123NAME IS NULL
垢版 |
2016/10/31(月) 14:07:37.12ID:???
sql serverとmysqlとで同じテーブルを同期させるなんて出来ますか?
sql serverの本データをmysqlにコピーする感じで。
0124NAME IS NULL
垢版 |
2016/11/03(木) 07:25:24.79ID:???
>>123
MySQLへリンクサーバー定義して、同期時に更新とかで出来そうな気がする
同期どうするかは考えんとダメだけど
0125NAME IS NULL
垢版 |
2016/11/03(木) 10:12:13.06ID:???
>>124
sql serverからmysqlへの一方通行のコピーなら簡単に出来るもんなの?
0126NAME IS NULL
垢版 |
2016/11/04(金) 05:38:06.52ID:???
リンクサーバ定義すれば、SQLServerからはローカルテーブルとほぼ同じように扱える
0127NAME IS NULL
垢版 |
2016/11/04(金) 16:29:37.52ID:???
>>126
ありがとうございました。
リンクサーバーでググってみます
0128NAME IS NULL
垢版 |
2016/11/07(月) 22:55:01.33ID:???
デフォルトだとdbo スキーマが使われますが、
実際の開発現場では、スキーマを何種類も作成して使い分けるなど
するのでしょうか?
dbo一個だけでテーブルを使い分ければそれで済む場合も多いと思いますが。
0129NAME IS NULL
垢版 |
2016/11/07(月) 23:26:03.19ID:eRnTZUaL
>>128
dboはスキーマではなくユーザー。

Oracleのようだと勘違いしてる?
0132NAME IS NULL
垢版 |
2016/11/08(火) 23:19:02.99ID:???
今のSQLServerはDBユーザとスキーマが別なので、同じ名称のスキーマもユーザも存在するぞ

スキーマは使い分ける必要があればそうすればいいし
単一スキーマで問題なければ全部dboでもいいんじゃね
0134NAME IS NULL
垢版 |
2016/11/09(水) 09:53:38.05ID:???
>>132
>スキーマは使い分ける必要があればそうすればいいし
スキーマを分けるのは例えばどんな場合なん?
0135NAME IS NULL
垢版 |
2016/11/09(水) 19:50:50.41ID:???
>>134
テーブル更新できないスキーマ作ったりのセキュリティ要件とか

スキーマっていうよりユーザって言う方がしっくりくるんだけどな
まあどうせDBごとでユーザとスキーマは1対1だろうし
実際スキーマとユーザの違いはすっきり説明できん
単にワンクッション入ってるだけってイメージだ
0136NAME IS NULL
垢版 |
2016/11/09(水) 22:45:58.11ID:9dB+mYx1
>>133
本来はユーザーで所有者なんだよ。

スキーマという概念は後付け。

SQL Serverではユーザーとスキーマは別のくくり。
0137NAME IS NULL
垢版 |
2016/11/09(水) 23:03:36.67ID:???
そんなオレオレ定義を開陳されても困る
0138NAME IS NULL
垢版 |
2016/11/10(木) 18:02:32.23ID:0Mu12LBJ
私は元創価の会員でした。
すぐ隣に防衛省の背広組みの官舎があるのですが、
自分の家の窓にUSB接続のwebカムを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。

別に大したものは写っていません。ゴミだしとか奥さんが子供を遊ばせている所とか。
官舎が老朽化して使われなくなってから、
今まで法人税(うちは自営業です)をほぼ払わなくても済んでいたのが、
もう守ってやれないのでこれからは満額申告するように言われました。
納得がいかないと言うと、君は自業自得で餓鬼地獄へ落ちる、
朝夕南無妙法蓮華経と三千回ずつ唱えて心をきれいにしなさいと言われ
馬鹿らしくなって脱会しました。

それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全部自分の出来心から起きたことで、どこに訴えるわけにもいかないのですが、
なんとかあの人たちと縁を切った上で新しい始まりを迎える方法はないんだろうか。
0139NAME IS NULL
垢版 |
2016/11/10(木) 22:12:44.11ID:???
まあ、SQLServerに限れば、昔はスキーマとDBユーザは同一だったから
>スキーマという概念は後付け。
と言えなくはないかもしれんが

>SQL Serverではユーザーとスキーマは別のくくり。
とどうつながるのか理解できん
0140NAME IS NULL
垢版 |
2016/11/11(金) 07:20:29.10ID:???
スキーマを正しく説明出来る人はここにはいないんですか?
0141NAME IS NULL
垢版 |
2016/11/11(金) 10:40:53.75ID:???
CitrixのXenAppのデータベースのぞいたら、サービスの単位でスキーマ分けてたな
ユーザはコンピュータアカウントだけででdb_owner
そんなやり方もあるんだなと感心した
うちは機能単位でなんてわけられないからdbo1個
リソースガバナー使う場合もあるからユーザは複数
0142NAME IS NULL
垢版 |
2016/11/11(金) 10:55:41.98ID:???
>>140
スキーマというのは、大抵のRDBMSで共通する概念ですね。
一つのデータベース内で論理的なグルーピングをするためのものです。

PostgreSQLのヘルプがわかりやすいので引用します。

> データベースには、複数の名前付きスキーマが含まれ、スキーマにはテーブルが含まれます。
> スキーマには、データ型、関数および演算子などの他の名前付きオブジェクトも含まれます。
> 同じオブジェクト名を異なるスキーマで使用しても矛盾は起こりません。

> スキーマの使用が好まれる理由はいくつかあります。
>
> ・1つのデータベースを多数のユーザが互いに干渉することなく使用できるようにするため。
> ・管理しやすくなるよう、データベースオブジェクトを論理グループに編成するため。
> ・サードパーティのアプリケーションを別々のスキーマに入れることにより、他のオブジェクトの名前と競合しないようにするため。
> ・スキーマは、ネストできないという点を除き、オペレーティングシステムのディレクトリと似ています。
0144NAME IS NULL
垢版 |
2016/11/13(日) 01:56:32.48ID:ImZglz/9
SQL Serverは日本マイクロソフトのサポートがやる気ねえからな。
0145NAME IS NULL
垢版 |
2016/11/13(日) 17:11:33.05ID:???
日本MSはMSの名を借りた国内代理店だと思ってる
0146NAME IS NULL
垢版 |
2016/11/14(月) 10:03:43.16ID:???
Windows Server 2012R2 のWindows VPSでSQL Server Express 2016動かすには
メモリ2GBだと厳しいか?
IISも動かしている。
0147NAME IS NULL
垢版 |
2016/11/14(月) 19:09:41.20ID:???
Expressは使用メモリ1GBに制限されてなかったかな…
もちろん余裕があるに越したことはないけれども
0148NAME IS NULL
垢版 |
2016/11/15(火) 00:33:47.54ID:???
Committed bytesの適正値を考えると、メモリ2GBならIISとSQLserver合算で1GB未満、できれば600〜800MBくらいかなあ感覚だけど
IISとSQLserverで上限設定しときゃサーバーが不安定になるのは抑えられると思う
素直にメモリ増強するのが一番いいけどね
0149NAME IS NULL
垢版 |
2016/11/15(火) 23:39:28.97ID:???
>>147>>148
レスありがとうございました。
余裕をみて4GBくらいでVPS契約してみます。
0150NAME IS NULL
垢版 |
2016/11/16(水) 11:07:27.41ID:???
>>149
個人利用でやる分には2GBでもいいと思うよ
会社のパソコン(Windows7の32bit、メモリ2GB)にSQLserver Developer EditionとIIS入れてて普通に動作する
Officeとかも使うとやっぱきつくなるんで普段はサービス停止してるけどね
0151NAME IS NULL
垢版 |
2016/11/16(水) 12:40:26.64ID:???
質問です。

先日、知り合いの店でデータベースリストアが勝手に走ったのですが
何が原因なのか不明な状態です。下記が一部ログになります。

The database '*****'' is marked RESTORING and is in a state that does not allow recovery to be run.

分かる方いらした教えてください。
0153NAME IS NULL
垢版 |
2016/11/17(木) 23:05:51.60ID:???
ある特定のテーブルで大量の件数をDeleteする時だけ
異常に時間がかかるんですが何故だかわかりますか?
ググってもイマイチ分からんです

Delete From TABLE Where PK<****
みたいな単純なやり方なんですが…

エスパーの方教えてください
0154NAME IS NULL
垢版 |
2016/11/18(金) 00:05:01.89ID:???
>>153
断片化が走りまくってるとか?
Insertするときもプライマリキー張ってると徐々に遅くなってくしそれかも
一回リビルドインデックスしてからやってみたら変わらんかなあ

sum関数でInt型の限界越えてオーバーフローしたんだが、実行プラン次第でオーバーフローしたりしなかったりするのは仕様?不具合?
2008r2から2014のsp2に移行しようとして本番データで動かしたらエラーなりやがった
MSに問い合わせる前にバグか仕様かのあたりつけときたい
0155NAME IS NULL
垢版 |
2016/11/18(金) 07:56:06.38ID:mgIvH7zu
>>153
SELECTするときも時間がかかってる?
0156NAME IS NULL
垢版 |
2016/11/18(金) 08:03:38.07ID:???
あとでrollbackされたときに備えて、delete予定データをいったんtempに吐いてるから
データ数が多いと死ぬほど遅い

生かすデータだけ別テーブルに吐いてtruncate tableして別テーブルをリネームしたほうが早い場合もある
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のスレ探すが作るかして移動したほうが良いんじゃね
0257NAME IS NULL
垢版 |
2017/02/24(金) 12:27:49.62ID:???
皆様有り難うございます。一度クエリを見直してみます。

色々と調べたのですが、単純なフロントエンドをaccess、バックエンドをSQL ServerでODBC接続では、
クエリ等の処理はサーバー側でななくクライアント側で処理されるのであまり速度の恩恵はないと見たのですが、やはりそうなのでしょうか?
これをサーバー側で処理する場合、かなりVBA等の手直しが必要なそうですが、そこまでいくと素人レベルでは難しそうです。
0258NAME IS NULL
垢版 |
2017/02/25(土) 03:47:54.77ID:???
やってみてそう感じたなら恩恵はないんだろうね
0259NAME IS NULL
垢版 |
2017/02/25(土) 11:50:18.21ID:???
>>257
SQL文の実行はAccessではなくSQL Serverだよ

>>254で改善できると思われ
0260NAME IS NULL
垢版 |
2017/02/25(土) 17:40:28.48ID:???
>>259
有り難うございます。
SQL文はSQL Serverで処理されるのですね。

今の解釈としては
accessのみのリンクされたデータベースでは、処理は全てクライアント側の仕事になりネットワークトラフィックが膨大になる。
SQL ServerとのODBCのリンクテーブルでは、SQL文をSQL Serverに渡し、SQL Serverが処理を行い、その解をクライアントに渡すのでネットワークトラフィックが少なくてすむ。
という理解で大丈夫でしょうか?

今までクエリ処理が重かったので、VBAを使ってきたのですが、出来るものはクエリに変えた方がいいのでしょうか?
0261NAME IS NULL
垢版 |
2017/02/25(土) 19:54:24.52ID:???
アクセスでodbcリンクテーブルを使うとデータが多いと遅いから
更新ない一覧表示とかの時はパススルークエリ使ったほうがいいと思うわ
0262NAME IS NULL
垢版 |
2017/02/25(土) 23:10:34.44ID:???
>>260
>SQL文をSQL Serverに渡し、SQL Serverが処理を行い
は正しいんだが、実行する内容によって、まずACCESSがどんなSQLを発行するか
その結果を受け取った後にどんな処理をするかによるので
>ネットワークトラフィックが少なくてすむ
とは限らん
>>254で言ってるように、検索条件にACCESSの関数入るような処理だと結局ACCESS側で全件取得して検査するかもしれん
なんにしてもACCESSの話だからこれ以上はどっか移動しろ
0263NAME IS NULL
垢版 |
2017/02/26(日) 23:01:28.87ID:???
「上位200行を編集」で表示されたデータを全選択してコピーすると
選択したデータにはあった括弧などの文字が欠落してコピーされる」みたいになバグがSqlServerにあると聞いたのですが
本当なのでしょうか?(例えば"(ABC)"を選択してコピーし、メモ帳などに貼り付けると"(ABC"になってたなど)
0264NAME IS NULL
垢版 |
2017/02/26(日) 23:28:44.28ID:???
なんでどこで聞いたか言わないのかねえ
0265NAME IS NULL
垢版 |
2017/02/27(月) 08:15:54.58ID:???
自分で試せる環境はないのかね。
0266NAME IS NULL
垢版 |
2017/03/03(金) 00:00:11.98ID:???
VB6からSqlServerに接続する時はoo4oとかいうのを使うんだっけ?
0268266
垢版 |
2017/03/03(金) 06:07:27.23ID:???
>>267
そうだった、オラクルだったw

10年以上前(受託開発やってた会社の正社員時代)に使ってたからすごくなつい気分になったよ、ありがとう。
そんな俺も今じゃ客先常駐のしがない派遣社員・・・orz
0269NAME IS NULL
垢版 |
2017/03/04(土) 17:12:25.44ID:???
sql server使う人は言語はphp?
0271NAME IS NULL
垢版 |
2017/03/05(日) 06:30:37.18ID:???
sql server使う人は言語はC#?
0272NAME IS NULL
垢版 |
2017/03/05(日) 11:37:02.05ID:???
SQLServerはStandardとEnterpriseのEdition機能差が酷すぎるわ
碌に新機能使えないならStandardなんて名乗らずにLiteとかにしろよと
0273NAME IS NULL
垢版 |
2017/03/05(日) 11:41:36.54ID:???
おれは C#,C++, PowerShell 辺りが多い
0275NAME IS NULL
垢版 |
2017/03/05(日) 17:53:33.74ID:???
Javaと聞くといつも風呂釜洗浄剤を思い浮かべてしまう
0279NAME IS NULL
垢版 |
2017/03/05(日) 20:35:26.58ID:???
>>277
ado(activex data object)でやってる
マスターの更新とかデータのセットや取得はエクセルでやったほうが楽チン
0280NAME IS NULL
垢版 |
2017/03/06(月) 00:11:22.47ID:???
OLEDB廃止だったはずだけど、いまだにADOで接続できるドライバあるのか
まあ、OLEDB-ODBCで行けるっちゃいけるんだろうけど
0281NAME IS NULL
垢版 |
2017/03/08(水) 14:25:17.42ID:???
現在2012にて動いている環境を2014に移行させようと思っています。

データは毎夜間にbcpコマンドを使って取り入れており、そのコマンド・フォーマットファイル自体は既存のものを流用予定です。
で、実際に動かしてみると2014のみ

SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 11 for SQL Server]キャストした文字コードが無効です。

が2レコード出ました。原因のレコードは突き止めたのですが、問題は分からず。
いろいろ試すと以下の事が分かりました。

・datetime2を使用しているカラムが怪しい?
・2レコードのうち片方のレコードを削除すると全レコード取り込みOK
・問題の1レコードの位置を最下部に移動して保存し直しすると全レコード取り込みOK
・問題の1レコードのdatetime2の最下部を1桁切ると全レコード取り込みOK

この件に関しては対応方法はあるのですが、そもそもの原因が分からないのは気持ち悪いです。
何か思いつく事はありますでしょうか?
0282resumi
垢版 |
2017/03/08(水) 17:40:19.11ID:hjh5f++s
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。
0283resumi
垢版 |
2017/03/08(水) 18:04:56.55ID:hjh5f++s
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。
0284NAME IS NULL
垢版 |
2017/03/08(水) 20:59:53.54ID:???
>>281
暗黙の型変換かなあ

bcpじゃないけどバッチ処理で値によって引っかかって
手前側でcastして明示的に型変換かけてから突っ込んだことがあるな

1レコード削除したら動くとか、ケツに持ってったら動く
とは整合性取れないけども
0285NAME IS NULL
垢版 |
2017/03/08(水) 22:54:59.32ID:???
問題のレコードの末尾にエスケープコードか何か入ってるんじゃないの?
0286NAME IS NULL
垢版 |
2017/03/09(木) 10:10:24.96ID:???
NVARCHAR内のNULL文字(NCHAR(0))を検索または置換する方法はありますか?
LIKE '%'+NCHAR(0)+'%'
REPLACE(name, NCHAR(0), '')
等を試してみましたが、だめでした。
0287NAME IS NULL
垢版 |
2017/03/09(木) 13:06:16.75ID:???
>>286
正しいやり方かどうかはわからんが
select * from table where name like N'%' + nchar(0) + N'%' collate JAPANESE_BIN
で検索できたよ
0288286
垢版 |
2017/03/09(木) 17:08:09.99ID:???
>>287
できました
ありがと
0289NAME IS NULL
垢版 |
2017/03/09(木) 17:13:43.94ID:???
SQLサーバっていまだにNとかncharとかcollateとかいるのか
0291NAME IS NULL
垢版 |
2017/03/10(金) 11:42:27.96ID:???
>>290
あ、そうなの?
最近PostgreSQLしかやってないから、他DBがどうなってるのか知らない
0292NAME IS NULL
垢版 |
2017/03/28(火) 10:32:41.51ID:???
1回目もクエリだけやたら時間がかかるっていう経験ないですか?
2回目は速い
改善する方法あったら教えてください
0293NAME IS NULL
垢版 |
2017/03/28(火) 13:20:36.85ID:???
>>292
まずは、やたら時間がかかる原因を調べる。実行計画を見るとか。

そういうクエリ自身の問題ではない場合で、以下にあてはまるのなら、0回目のクエリを発行してデータをキャッシュにのせればいい。
(0回目:データベース起動後に重いクエリを実行するとか、テーブル全体を読んでキャッシュにのせるとか)
・単に対象データを物理ディスクから大量に読む必要がある
・なおかつ何回も類似クエリを発行する必要がある
・1回目が遅いのも改善したい

キャッシュミス多発なら、キャッシュサイズを拡大する。
ハード性能的に無理なら、より性能の良いハードに乗り換える。
0294NAME IS NULL
垢版 |
2017/03/28(火) 14:33:14.80ID:???
DBサイズくらいのメモリ積め
0295NAME IS NULL
垢版 |
2017/03/28(火) 14:55:00.82ID:???
今調べたら、Windows Serverは余裕でTBの領域に入ってるな。2016でmax 24TB。
メモリは32GB*4の128GBで17万程度。
0296NAME IS NULL
垢版 |
2017/03/28(火) 16:34:29.46ID:???
ストアドにしてコンパイル済みにする手もあるが
0297NAME IS NULL
垢版 |
2017/03/30(木) 00:46:03.18ID:???
ストアドにしたって、データのキャッシュミスは減らんと思うが
コンパイル時間で1回目だけやたら時間がかかるとか、どんな複雑なクエリ書いたらそうなるってんだ
0298NAME IS NULL
垢版 |
2017/03/30(木) 15:01:26.21ID:???
>>297
単にディスクからの読み込み量が多いだけでしょ
場合によっては、その読み込みが不要な場合もあるから、1回目のクエリから高速化できかもしれん
0299NAME IS NULL
垢版 |
2017/04/02(日) 18:33:09.18ID:???
>>298
データがキャッシュにヒットする以外に
ディスクからの読み込みが不要で高速化できる場合の具体例をあげてくれ
0300NAME IS NULL
垢版 |
2017/04/03(月) 13:31:22.61ID:???
>>299
説明不足ですまん。
ディスクからの読み込みがゼロになるということじゃなくて、不要な読み込みがなくなるかもという話。
例えば、
・インデックスがなくseq scan発生
・インデックスはあるがクエリがまずくてインデックスが使われずseq scan発生
とか。
0301NAME IS NULL
垢版 |
2017/04/04(火) 08:11:48.03ID:???
>>300
それストアドにしたって解決されないわけだが
むしろ実行計画の生成タイミングで悪化する可能性もあるんじゃね
SQL Serverのストアドがいつ実行計画立てるかしらんけど
0302NAME IS NULL
垢版 |
2017/04/04(火) 10:59:56.61ID:???
>>301
ストアドは関係ないよ
クエリの内容そのものに問題があったり、indexを作ったりしたら読み込みページ数が減るかもねという話
なので、まずは実行計画を見るところから始めましょうということ
0303NAME IS NULL
垢版 |
2017/04/04(火) 11:06:24.35ID:???
舐めるデータが多くて、初回はハードディスクから、2回目以降はキャッシュされたメモリーから
だから速度が違う

ストアドにすることで、コンマ何秒かは改善するかもしれないが、その程度

あとインデックスを見直すか
0304NAME IS NULL
垢版 |
2017/04/04(火) 11:23:43.06ID:???
ストアドストアド言ってる人は、90年代に生きてるんですかね
0305NAME IS NULL
垢版 |
2017/04/04(火) 12:18:00.83ID:???
今どきはストアド使わんのがトレンディなんか?
0306NAME IS NULL
垢版 |
2017/04/04(火) 13:22:41.59ID:???
>>305
実行時間短縮が目的でストアドを使う奴はいないだろうね
0307NAME IS NULL
垢版 |
2017/04/04(火) 14:30:20.24ID:???
数百KBレベルのクエリなら、parse->palnningでコンマ何秒かかかるかもしれん
0308NAME IS NULL
垢版 |
2017/04/04(火) 19:25:55.84ID:???
>>306
関係ない事を言うのに俺にアンカつけんのやめてもらえんかな
俺までバカに見えるやろが
0310NAME IS NULL
垢版 |
2017/04/05(水) 12:26:42.39ID:???
>>309
だからなんだよ?
お前がそう思ってる事が今なんか関係あるのか?
バカしかいないのかここは
0311NAME IS NULL
垢版 |
2017/04/05(水) 13:18:00.59ID:???
>>310
> だからなんだよ?
>>305みたいなマヌケなレスするなってことだよ
そんなこともわからんバカなの?
0312NAME IS NULL
垢版 |
2017/04/05(水) 13:28:16.18ID:???
>>305
いつまでも暴れられると困るので。
> 今どきはストアド使わんのがトレンディなんか?
そういうトレンドはありません。
0313NAME IS NULL
垢版 |
2017/04/05(水) 20:27:50.95ID:???
まあしかし、ORMの普及や回線速度の向上とかでストアド不要論が優勢な流れはあるかと
昔はトラフィック減らして速度向上させるためにストアドって流れはある事はあったからな
0314NAME IS NULL
垢版 |
2017/04/05(水) 21:15:40.39ID:???
>>311
だから関係ないレスでアンカつけんのやめてもらえんかな
俺までバカに見えるやろが
0315NAME IS NULL
垢版 |
2017/04/05(水) 21:58:10.55ID:???
>>313
SQLSeverと親和性高いC#がEF推しているのを見ると不要論が優勢でも不思議じゃないな
0317NAME IS NULL
垢版 |
2017/04/06(木) 10:50:33.00ID:???
>>313,315
ORMやEFが広まれば、よりストアドプロシージャ・ファンクションの需要が高まる気がするが。
ドメインロジックはサーバ側で実装し、クライアントはそれを使用するだけというスタイル。
0318NAME IS NULL
垢版 |
2017/04/06(木) 13:19:00.97ID:???
そんな思想があったらRailsなんぞ流行らんわ
何処の時空の話だよ
0319NAME IS NULL
垢版 |
2017/04/06(木) 13:59:58.76ID:???
>>318
まぁ、RailsだろうがEFだろうが、データをどかっと取ってきて、クライアントコードで
ごりごりドメインロジックを実装するような層には関係ない話かな。
0320NAME IS NULL
垢版 |
2017/04/06(木) 14:11:49.32ID:???
そんな話じゃねえよ
EFが何しにPOCOなんての売りにしてたかって話だ
0321NAME IS NULL
垢版 |
2017/04/06(木) 15:42:00.99ID:???
>>320
つまりは、
> データをどかっと取ってきて、クライアントコードで
> ごりごりドメインロジックを実装する
ということだろ?
POCOメインのプログラマには関係ない話だよ。

そんな話じゃないなら、どんな話なんだ?
0322NAME IS NULL
垢版 |
2017/04/06(木) 15:53:14.04ID:???
DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな
0323NAME IS NULL
垢版 |
2017/04/06(木) 15:58:59.46ID:???
>>322
> DB側でスキーマ書いて処理も書いてってのが古い思想という話をしている
なるほどね。
でも、ドメインロジックをデータベース側に寄せるか、クライアント側に寄せるかという問題は、
今でも存在する。ふるいも新しいもないと思うが。

> 開発スピードが無闇に上がってスキーマ変更朝令暮改でって今時はな
それこそ、データベース側にドメインロジックの実装を寄せた方がいいのでは?
0324NAME IS NULL
垢版 |
2017/04/06(木) 16:05:36.81ID:???
例えば、2003年のMartin Fowlerのブログポスト:
『ドメインロジックとSQL』
http://bliki-ja.github.io/DomainLogicAndSQL/

ここに書かれていることは、全然古いとは思わない。
逆に、自動生成されるコードをメインに使うようになる場合は、ドメインロジックを
ストアドファンクションで実装してViewにした方がいい場合も結構あると思うんだが。
0325NAME IS NULL
垢版 |
2017/04/06(木) 16:19:28.98ID:???
昔々のウォーターフォールで上流で設計決まる時代ならそれもよかろうさ
だが今はデータ構造から卓袱台返される
その時アプリとDB両方に手ぇ入れるのと
アプリだけで済むのとどっちが早いか?
自明だろ
0326NAME IS NULL
垢版 |
2017/04/06(木) 18:53:09.88ID:???
DB側でごりごり書いたストアドって、InMemoryでUnitTestできるのかい?
0327NAME IS NULL
垢版 |
2017/04/06(木) 20:44:49.38ID:???
Web系とかで高速開発/デプロイな現場なら
コードファーストも面白いし効率あがりそうと思うけど
DevOpsの時代っても考えなしに書くでなし
結局はV字開発なんだからDB側でスキーマ決めるくらい
やれば?みたいな思いはあるな古い考えなんだろうけど

SIerソルジャーだから>>324もよくわかる
SQL一発取得+コーディングレスなアプローチが
楽/効率的な局面は現場じゃザラにあるよねえ

SSRS/PowerBIとかDataSpiderだの触るととくにそう
ストアド書いてぽちぽちするだけでけっこう
運用に耐えるもんできるし変更追従も保守も楽だしな
基幹から社内向けWebで集計帳票や明細表な要件なら
SQL以外のコーディング自体がそもそもバカバカしい
0328NAME IS NULL
垢版 |
2017/04/08(土) 22:23:48.60ID:???
>>327
純粋なコードファーストはある程度以上の規模だと使い物にならんと思ってた
スキーマはDB側でかっちり決めんと話にならんだろうと

これが古い考えだと言われればそうなんだろうかと思ってた
が、既存のデータベースからコードファーストなんて手法が出来た所を見ると
やはりスキーマをDB側で決めるのは今でも必要なんじゃないか

ストアドにいろんなものを閉じ込めるのは、手法の新旧で言えばそれこそ古い手法だと思う
ストアドの保守はアプリの保守よりコストが高いのが現状じゃないかと思う
ストアドの保守がアプリの保守より低コストだって言う所ならそれを採用するのもありなんだろうけど
0330NAME IS NULL
垢版 |
2017/04/09(日) 18:40:23.01ID:???
with(nolock)をselect文全てに付けるとヤヴァイ?
ググったらコミット前のデータが返ってくるとか
ページ分割が起こった場合行の重複や欠落が発生するとか書いてあるけど
今仕事で触ってる既存のselect文のコード全部そうなってる
0331NAME IS NULL
垢版 |
2017/04/09(日) 19:22:13.71ID:???
ヤバイかどうかは業務内容による
0332NAME IS NULL
垢版 |
2017/04/10(月) 14:48:01.02ID:???
>>329
質問の真意が図りかねるが
>ストアドにいろんなものを閉じ込める
の事であるなら、たとえば
ビジネスロジックをストアドとして実装することや
DBアクセスの結果をストアドの帰りとすることでスキーマ変更をアプリに意識させないこと
などの手法を指してる

純粋にストアドの意味が分からないなら
DBに格納できる一連の手続きかな
0333NAME IS NULL
垢版 |
2017/04/10(月) 15:17:23.17ID:???
>>330
常に1スレッドからしか触られない前提なら別にヤバくない
0334NAME IS NULL
垢版 |
2017/04/10(月) 22:02:15.03ID:mMYNtWws
ストアドってPGのたしなみとして
できて当たり前だと思うけど
今の新人は>>329みたいなのが
多いのか。
0335NAME IS NULL
垢版 |
2017/04/11(火) 07:27:15.05ID:???
>>333
誰も同時に触らないならnolock必要なくね?
何のために入れたのやら

何処かでnolock入れると速くなるよ!とかデッドロック回避できるよってのを聞いてよく考えずに入れたのか

同時に一人(1スレッド?)しか触らないなら
2つのロックが対立することは無いんだから
0336NAME IS NULL
垢版 |
2017/04/11(火) 13:39:32.49ID:???
>>335
nolock指定すれば雀の涙ほど速くなる
それ以外の理由? 知らんそんなものは管轄外だ
0337NAME IS NULL
垢版 |
2017/04/11(火) 19:12:06.12ID:???
Hyperーvのレプリカサーバーに入っているSQLSERVERもライセンスって必要ですか?
0338NAME IS NULL
垢版 |
2017/04/11(火) 19:42:30.31ID:???
>>337
OSのライセンスが2つ必要ならそりゃSQLServerのライセンスも同じじゃね
0339NAME IS NULL
垢版 |
2017/04/11(火) 20:03:02.82ID:???
>>338
ありがとうございました。
不要と理解しました
0340NAME IS NULL
垢版 |
2017/04/12(水) 01:11:00.92ID:???
>>333,335
スレッド一つでも複数コネクション持ってゴニョゴニョすると問題が出る気がする
0341NAME IS NULL
垢版 |
2017/04/12(水) 03:42:34.42ID:???
>>340
さすがにそれはない
まさかCOMMITせん訳でもあるまい?
0342NAME IS NULL
垢版 |
2017/04/12(水) 06:15:01.88ID:???
>>330
マルチスレッドの場合でも全トランザクションを
同期化してスレッドセーフにすればヤバくない
0343NAME IS NULL
垢版 |
2017/04/13(木) 00:21:38.38ID:???
>>341
コミットしてから次のトランザクション始めるならコネクション二つとか必要ないだろ
ようは同時実行するトランザクションがあるかどうかで、スレッドとか関係ないって話
0344NAME IS NULL
垢版 |
2017/04/13(木) 14:55:41.05ID:???
スレッド内でトランザクション完了しないで別のトランザクション始めるとかどんな状況だよ
特にSQLServerだと無駄に昇格起こってMSDTCエラー起こすぞ
0345NAME IS NULL
垢版 |
2017/04/13(木) 15:49:12.08ID:???
スレッドがどうこうとか、あんまり関係ない。
別プロセスでも話は同じ。

要は、トランザクション分離レベルがダーティーリードになっても大丈夫かどうかで決定すべき。
ダーティーリードとは、自分以外の誰か(別プロセスも含む)のコミット前のデータを読むことに
なっても問題ないかどうかという話。
0346NAME IS NULL
垢版 |
2017/04/13(木) 17:00:25.60ID:???
>>344
シーケンスなかった時に、連番とるためにやったことあるわ
0349NAME IS NULL
垢版 |
2017/04/13(木) 19:49:56.90ID:???
>>347-348
まさかと思うが入れ子トランザクションでドヤってんじゃあるまいな…?
0350NAME IS NULL
垢版 |
2017/04/13(木) 20:10:39.13ID:???
>>349
何のために別にコネクション(トランザクション)が必要か考えたら
入れ子トランザクションではダメなことぐらいわかるだろうに
0351NAME IS NULL
垢版 |
2017/04/13(木) 20:15:54.97ID:???
>>350
連番取るのにトランザクション外からやるっての?
ますますもって意味わからんぞ
0352NAME IS NULL
垢版 |
2017/04/13(木) 21:36:54.46ID:???
>>351
連番管理用のテーブルと、連番を利用するテーブルを別のテーブルにするんだよ
短時間で終わる連番の発行と、時間のかかる更新系の処理を別トランザクションにすることで
連番管理用のテーブルのロックを解放する
0355NAME IS NULL
垢版 |
2017/04/14(金) 11:06:49.82ID:???
結論は何も考えずにnolock入れるつもりなら止めとけってことじゃないの
0358NAME IS NULL
垢版 |
2017/04/14(金) 20:02:12.33ID:???
>>354
今時の代替手段はどんなの?

>>356
何を懸念してるか知らんが問題ない
欠番の発生は想定内
0360NAME IS NULL
垢版 |
2017/04/14(金) 20:31:11.74ID:???
>>358
> 今時の代替手段はどんなの?
シーケンスだろ
0361NAME IS NULL
垢版 |
2017/04/14(金) 21:37:16.31ID:???
シーケンス互換性ないじゃん
0362NAME IS NULL
垢版 |
2017/04/15(土) 14:02:49.32ID:???
>>361
シーケンスと何が互換性ないって?
0363NAME IS NULL
垢版 |
2017/04/16(日) 08:42:49.91ID:???
>>362
違う
シーケンスとかIDENTITYは製品間で互換性無いって言ってんだろ
0364NAME IS NULL
垢版 |
2017/04/17(月) 00:45:52.25ID:???
今の流れでそれがどうだと?
0365NAME IS NULL
垢版 |
2017/04/17(月) 13:04:14.32ID:???
シーケンスって…なに?
0367NAME IS NULL
垢版 |
2017/04/17(月) 16:51:13.99ID:???
何でこの程度のことググらないのか、毎度ながら不思議
0368NAME IS NULL
垢版 |
2017/04/18(火) 12:21:23.47ID:???
むしろお前が教えればいいだけなのにどうしてわざわざググらなければいかんのか
0369NAME IS NULL
垢版 |
2017/04/18(火) 13:06:43.50ID:???
教えてくれる奴が来るまで待つとか馬鹿でしょ
0370NAME IS NULL
垢版 |
2017/04/18(火) 19:21:58.59ID:???
いや待てよ勝手に理解したつもりになるな
0371ich1
垢版 |
2017/04/21(金) 16:41:35.14ID:R/eXxgbc
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。
0373NAME IS NULL
垢版 |
2017/04/25(火) 22:38:34.87ID:???
最近DB触り始めたんですが、チューニング的なことをする必要が出てきてT-SQLを知りたいです
例:)http://outofmem.tumblr.com/post/77053433681/sql-serverdb%E5%86%85%E3%81%A7%E7%99%BA%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%9Fsql%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B
↑こんなふうにシステムビューとか含めてリファレンス的に読める本があれば教えて欲しいんですがどうですか

調べてもゼロ年代の本しかなくて、いきなり買うのも勇気がいります……
ちなみに日本語しかダメです
0374NAME IS NULL
垢版 |
2017/04/25(火) 23:17:16.27ID:???
>>332
>「ストアド」 = 「DBに格納できる一連の手続き」

いかにもシステム屋さんな定義だなw
0375NAME IS NULL
垢版 |
2017/04/26(水) 12:56:31.64ID:???
>>374
では、君の素晴らしい定義を教えてもらおうかな
0376NAME IS NULL
垢版 |
2017/04/26(水) 20:31:45.30ID:yyy4jyWJ
いきなり答えあわせじゃおもしろくないから
>>374に笑われない定義は何かな?」ゲームしようぜ
0377NAME IS NULL
垢版 |
2017/04/26(水) 22:45:55.34ID:???
べつに>>374の定義はどうでもいいけど
>>374が何屋さんを自称するのか気になるわ
0379374
垢版 |
2017/04/29(土) 01:07:23.45ID:???
>>375-378
おいやめろw
俺はこの業界にどっぷりのただのIT土方だよ。
定義があまりにもプロっぽい(同業っぽい)からちょっとつついてみただけだw
0380NAME IS NULL
垢版 |
2017/04/29(土) 09:51:21.13ID:???
すみません。質問させてください。
CREATE PROCEDUREについて、
ストアドプロシージャが既に登録されていたらDROP後、CREATE→OK
ストアドプロシージャが既に登録されていたらなにもしない  →NG
となるのはなぜなのでしょうか?

https://technet.microsoft.com/ja-jp/library/ms175502(v=sql.105).aspx」の
「バッチの使用に関するルール」に「・・・CREATE ステートメントはバッチの最初に記述する必要があります」
とあるので構文エラーなのかなとは思うのですが、構文エラーとした理由はあるのでしょうか?

これは出来る
IF OBJECT_ID ( 'dbo.プロシージャ', 'P' ) IS NOT NULL BEGIN
DROP PROCEDURE dbo.プロシージャ
END
GO
CREATE PROCEDURE dbo.プロシージャ・・・

これはできない
IF OBJECT_ID ( 'dbo.プロシージャ', 'P' ) IS NULL BEGIN
CREATE PROCEDURE dbo.プロシージャ・・・
0381NAME IS NULL
垢版 |
2017/04/29(土) 19:13:45.28ID:SlYPafLa
create or replace
じゃ不満なのか?
0382NAME IS NULL
垢版 |
2017/04/29(土) 20:46:20.98ID:???
不満はないんだけど、なんでかなと。そういうものなんだと思っときます。
0383NAME IS NULL
垢版 |
2017/05/07(日) 03:32:11.96ID:???
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。
0384NAME IS NULL
垢版 |
2017/05/07(日) 06:15:58.60ID:???
>>383
たぶん良いんじゃないか。
結果を教えてくれ。
0385NAME IS NULL
垢版 |
2017/05/10(水) 00:57:31.27ID:???
>>383ではないが
2008R2 Express SP3を2016 Expressにして、2008をアンインストールしてみた
軽く動かした感じでは動いてるっぽいけど
2008のアンインストールが色々手間だった

まあ実務マシンなら、俺ならアンインストールせずにスタートメニューだけ消しとく
0386NAME IS NULL
垢版 |
2017/05/10(水) 21:21:25.38ID:???
俺なら2008アンインストール、2016インストールするけど
0387NAME IS NULL
垢版 |
2017/05/11(木) 19:47:33.46ID:XdKWiRE4
Windows ServerでSQL Server 2012を入れております
SSMSでバックアップのスケジュールを確認しようとしたんですが管理にメンテナンスという項目がありません
SSMSを見てもExpressという表示はないんですが原因って他にありますか?
0388NAME IS NULL
垢版 |
2017/05/11(木) 19:51:28.91ID:???
ログインユーザーがsysadminじゃなかったってのは昔あったな
0391NAME IS NULL
垢版 |
2017/05/12(金) 20:07:03.25ID:Kt4maARH
>>388
sysadminというのはロールですよね?
Administratorですし、sysadminにもチェックはありました
0392NAME IS NULL
垢版 |
2017/05/12(金) 22:11:13.31ID:???
SSMSってエディション関係ないからな。DBエンジンがEXPRESSだったって落ちじゃないのか
接続先のバージョンとか出てたっけ
0393NAME IS NULL
垢版 |
2017/05/13(土) 06:25:13.83ID:???
2016のssmsとexpress使ってるけど、imeの問題は出ないぞ
0394NAME IS NULL
垢版 |
2017/05/13(土) 07:09:40.03ID:???
Visual Studio 2015 Express 使ってるけどごくまれ(数ヵ月に一回ぐらい)IME がOnにならなくなる時がある
メモ帳とかを起動してIMEをOnにしたりするとVisual Studioでも普通に使えるようになるからあまり気にしてないけど
0395NAME IS NULL
垢版 |
2017/05/13(土) 11:11:12.87ID:???
>>389
項目は出ているけど開けなかった記憶あるわ
項目自体出てないのは>>392の通りExpress使っているとかじゃないのかね
0396391
垢版 |
2017/05/13(土) 23:35:10.24ID:X0tWj4fp
すいません、たぶんDBのほうがExpress使ってるかもしれません
どこで確認できますか?また自動でバックアップする方法とかありますか?
0397NAME IS NULL
垢版 |
2017/05/14(日) 00:45:41.95ID:???
SqlServerに特化したPowerShellがあるらしいけど、使ってる人いるのかな?
0398NAME IS NULL
垢版 |
2017/05/14(日) 01:42:00.54ID:???
>>396
マジで言ってるのかアレだなあ...
&#9642;&#65039;エディション確認
・繋いだインスタンスを右クリックでプロパティ
・masrerデータベースで
select @@version

&#9642;&#65039;バックアップ
Backup database コマンド書いたSQLファイルを
sqlcmd/osqlで呼ぶbat書いてタスクスケジューラに登録

expressで開発、検証じゃなく本番運用する気なら
悪いこといわんからstandard買って載せ替えるが宜しい
奉行とかPCAとかのパッケージバンドルかねえ
0399NAME IS NULL
垢版 |
2017/05/20(土) 15:16:05.49ID:BH3EK1xP
アップルラボ 詐欺 怪しい 疑惑 iPhone 修理 非正規店 グレーゾーン 韓国 中国
根本つとむ 中卒 ブサイク ブス キモい 詐欺師 生活保護
根本つとむ 逮捕 犯罪者 罪状 重要参考人 障害者 アスペルガー症候群
アップルラボ 被害者の会 壊れた おかしい 犯罪 故障 iPhone7 スティーブジョブズ
アップルラボ 脱税 iPad 脱獄 水没修理 MacPro 買取
アップルラボ 誇大広告 2ちゃんねるで宣伝 消費者センター 粉飾決済 恥 ダメ
アップルラボ 迷惑企業 最低 やめて欲しい 中卒 変 創価学会 中国
0400NAME IS NULL
垢版 |
2017/05/20(土) 18:14:01.91ID:???
>>397
> SqlServerに特化したPowerShellがあるらしいけど
どこの情報?
普通に [Data.SqlClient] 経由で使うのとなにか違うの?
0401NAME IS NULL
垢版 |
2017/05/23(火) 21:26:20.97ID:id3rm7dy
Hyper-V クラスタ上の仮想サーバー(4コア割当)にSQLServer2016stdをインストールしたとき、SQLServerの必要ライセンスを教えてください
0403NAME IS NULL
垢版 |
2017/06/02(金) 21:45:56.38ID:???
SQLはmacでも使えますか?
0405NAME IS NULL
垢版 |
2017/06/02(金) 22:47:59.88ID:???
SQL自体は使える(書ける)
0406NAME IS NULL
垢版 |
2017/06/03(土) 17:30:12.42ID:???
じゃやっぱりWinマシンを買うところからってことですね

>>405
使えないということと書けるの違いはどう理解すればいいですか?
0407NAME IS NULL
垢版 |
2017/06/03(土) 17:57:23.00ID:???
>>406
SQLとSQL serverの違いはわかってる?
0408NAME IS NULL
垢版 |
2017/06/03(土) 21:38:11.44ID:???
んと、SQLはプログラミング言語で
SQLserverはMS社のデータベース
0411NAME IS NULL
垢版 |
2017/06/03(土) 22:59:56.99ID:???
その記載ってSQL Serverを作成した言語の話じゃないかな
0412NAME IS NULL
垢版 |
2017/06/03(土) 23:04:52.90ID:???
>>411
そういうことなのですか
ありがとうございます
ではもとい、Winマシンを買うのは必須ですね
0413NAME IS NULL
垢版 |
2017/06/03(土) 23:29:53.05ID:???
仮想環境入れて、そこでWindowsを動かすという方法もあるけれど
どういう目的で使うのか、どの位の頻度で使うのかにもよるだろうね
0414NAME IS NULL
垢版 |
2017/06/03(土) 23:45:52.82ID:???
>>413
会社は普通にWindows機なんで、macは自宅学習用です
プログラミング自体初めてなので家でも勉強しようと思って
0415NAME IS NULL
垢版 |
2017/06/04(日) 00:09:22.35ID:6QGLXM/f
macはバカが使うものだからバカになりたくなかったら今すぐ捨てた方がいいね
0416NAME IS NULL
垢版 |
2017/06/04(日) 00:14:22.87ID:???
>>415
そういう煽りには乗りませんので
0417NAME IS NULL
垢版 |
2017/06/04(日) 00:25:56.60ID:6QGLXM/f
>>416
煽りを装った本音なんだけどなあ
0419NAME IS NULL
垢版 |
2017/06/04(日) 00:35:50.62ID:???
>>414
MacBookPro15なら、そこそこパワーがあるしMemoryも乗っているから
仮想環境でそれなりに動かす事はできる
それ以外のときはBoot Camp使って、起動を切り替える方が良いかもしれない
SSDだろうから切り換えしてもそれほどストレスにはならないと思う
0420NAME IS NULL
垢版 |
2017/06/04(日) 00:42:41.51ID:???
>>414
なら仮想環境に入れた方が早いな
0421NAME IS NULL
垢版 |
2017/06/04(日) 09:26:51.00ID:???
>>419
>>420
ありがとうございます

macにWindows入れること検討してみたいと思います
macはモニターの色は綺麗だし普段使いには満足してますが、office系ソフトはショートカットが使えなくて戸惑うし一長一短ですね

家に仕事持ち込むわけではないので、まずは会社のWindowsで慣れてから再度考えようと思います
0422NAME IS NULL
垢版 |
2017/06/04(日) 09:35:30.08ID:???
sqlを練習する程度ならmysqlでもいいんじゃないか?
Macでも動くし。
0423NAME IS NULL
垢版 |
2017/06/04(日) 10:27:16.37ID:???
>>422
そうなんですか!?
前に調べてた時macでも使用可なのがあった記憶がベースで今回の質問に至っておりまして…
それがmysqlだったのかもしれません
ありがとうございます!
まずはそこからやってみます
0424NAME IS NULL
垢版 |
2017/06/04(日) 14:59:13.80ID:???
>>423
そんなに驚くなよ。
sql server expressはwindows専用だが
それ以外のフリーなdbソフトは大体はMacでも動くんじゃないか?俺はMac持ってないが
0425NAME IS NULL
垢版 |
2017/06/09(金) 08:22:54.49ID:???
SQLServerのデータファイルの自動拡張がタイムアウトしたってイベントログ出てるんですが
自動拡張時のサイズ小さくすれば解決するもんなのかな?
書き込みが頻発するとディスクアクセスがボトルネックになりそうなんだが

そもそものタイムアウトが発生するところをケアすべきよね
やっぱ
0426NAME IS NULL
垢版 |
2017/06/09(金) 11:20:11.31ID:???
>>425
自動拡張の初期値はファイルサイズのX%なのでサイズがでかくなるにつれ拡張サイズも増えて処理がタイムアウトするから拡張サイズは固定値にした方が良いよ
ログファイルじゃなくてデータファイルならそもそものデータ見積もりが誤っているという話もあるが
0427383
垢版 |
2017/06/14(水) 12:27:42.97ID:???
すんません、
「やってみたら?まぁ上手くいくわけないんだけどなwせいぜい絶望してファントム生んでろw誰もエンゲージしねーけどw」
って事かと思って保留してました。

実践していただいた方もいて、助かりました。やってみます。
自分のPCなんで最悪HDDのイメージ取ってから試せば何とでもなるんですけどね。
試行錯誤できる環境を作る時間がなくて。
でもHDDの空き容量もなくて。
そして人生の余裕もない。
もう死にたい。全てが嫌になった。
0428NAME IS NULL
垢版 |
2017/06/19(月) 23:23:03.91ID:???
SQL2014の自動拡張で質問です。
例えば10MBまたは100MBと指定して拡張されたタイミングまたはログというのは何処で確認できるものでしょうか?

SQL2008だと「ディスク使用量」レポートで確認できるという記事を見かけて
2014環境で確認しましたが思うような結果が得られませんでした。
復旧モデルが単純だったせいなのか、2014では別のレポートで出力出来るのか判断がつきかねています。

ど素人なので的外れな事を書いているかもしれませんが何かヒント頂ければ幸いです。
0429NAME IS NULL
垢版 |
2017/06/21(水) 01:20:46.92ID:???
SSMSで管理のSQL Serverログとか
OSのイベントビューアでアプリケーションログとかになんか吐いてなかったっけ
0430NAME IS NULL
垢版 |
2017/06/21(水) 12:19:47.12ID:HMTE/EOf
なんでちょっとMSの中の人よりの言いかたなんだよw
0431NAME IS NULL
垢版 |
2017/06/21(水) 20:48:17.77ID:???
どの発言がどうMSの中の人よりなのか
0432NAME IS NULL
垢版 |
2017/06/21(水) 21:12:30.65ID:eFBPC0xl
気になるんだったらもう少し謙虚に聞いたら?
0433NAME IS NULL
垢版 |
2017/06/22(木) 23:55:36.11ID:???
>>429
ありがとうございます
ご鞭撻頂いた項目で確認したいと思います
0436NAME IS NULL
垢版 |
2017/07/02(日) 17:23:55.73ID:???
質問させてください。

SQLServer2008 R2で、主キーにクラスタ化インデックスを指定されたあるテーブルに対し、
主キーを指定した単純なSelect文を発行して実際の実行プランを表示させたところ、なぜか「TableScan」となります。

・WHERE句に主キーを指定したのになぜ「Clustered index seek」にならないのでしょうか?
少なくとも「Clustered index scan」にならないのはなぜでしょうか?

この点についてなにかこういうところを確認してみろという部分はありますか?
もしくは実行プラン「Table Scan」でもとくに気にするところではないのでしょうか?
特にSelect結果が遅いわけではなく、1秒もかからないで結果が返ってくるので
特に現時点では致命的ではないのですが・・・

その他の状況としては以下の通りです。
・テーブルのレコード数は数万程度。
・もともとのこのDBはSQLServer2005で作られたものであり、バックアップから復元して互換性レベルを上げてある。
・Indexの再構築を行っている
・別な環境で似たような状況をつくりだし、同じくSelectをしてみたところ、想定した通り「Clustered index seek」となった。
・数ヶ月以上運用され、INSERTやUPDATEなどは繰り返し発生している

以上のような状況なのですが、
なにかわかる方がいらっしゃったらよろしくお願いします。
0437NAME IS NULL
垢版 |
2017/07/02(日) 17:37:33.40ID:9thF4go5
>>436
あのな、インデックスがあればインデックススキャンになるわけじゃないんだよ。データによってはテーブルスキャンの方が速い。それを自動で判断した結果がそういうことだよ。
0438NAME IS NULL
垢版 |
2017/07/02(日) 17:42:57.27ID:???
>>436
UPDATE STATISTICSで統計情報を更新したり、DBCC FREEPROCCACHEで実行プランをクリアするぐらいかね
遅くなる可能性もあるから、事前確認は怠らずにね
0439NAME IS NULL
垢版 |
2017/07/02(日) 17:51:08.05ID:???
>>437-438
早速の返答ありがとうございます。

かならずしもIndex seekのほうがよいわけではないんですね。
統計情報の更新は調べてやってみることにします。
ありがごうとざいます。
0440NAME IS NULL
垢版 |
2017/07/02(日) 18:01:02.66ID:???
数万程度ならどんな実行計画でも時間は変わらない可能性大だが、
どうしても拘束しないたらヒント文を追加すれば?
0441NAME IS NULL
垢版 |
2017/07/02(日) 18:28:22.42ID:???
>>440
ヒント文でインデックスを指定できるんですね。
これでやってみて時間がかわらなそうであれば元の状態で行こうと思います。
ありがとうございました。
0442NAME IS NULL
垢版 |
2017/07/02(日) 19:24:58.07ID:???
1フィールドだけのテーブルがあって、その1フィールドにプライマリキーが設定されてるのを見るとなんか微妙な気分になるw
0443NAME IS NULL
垢版 |
2017/07/02(日) 21:27:03.96ID:???
クラスター化インデックスのあるテーブルってテーブルスキャンは発生しないと思ってんだが違うのか
俺の知る限り、テーブルスキャンするところはすべてクラスターインデックススキャンになるんだが

クラスターインデックスのフルスキャンはテーブルスキャンと実質同じだと思うんだが、何が違うんだろ
テーブルスキャンならクラスターインデックスのリーフページだけをたどれる?
0444NAME IS NULL
垢版 |
2017/07/06(木) 22:57:10.15ID:???
access単体でデータベースを作成するのと、SQLserver+Vbで作成するのは難易度はどのくらい違いますか?
0445NAME IS NULL
垢版 |
2017/07/07(金) 00:32:55.05ID:???
だいぶ前にミラーリングが非推奨の機能になっちゃったけど、これからはクラスタ作ってAlwaysOnでやるしか無いのかね
今時オンプレかよとは言わないで
0446NAME IS NULL
垢版 |
2017/07/07(金) 00:49:20.65ID:???
>>444
それだけの内容では色々分からなすぎて
双方の言語経験があるなら差はほとんどない、としか答えられない
0447NAME IS NULL
垢版 |
2017/07/07(金) 13:53:10.80ID:???
>>445
ミラーリングしたい理由はなによ
0448NAME IS NULL
垢版 |
2017/07/07(金) 14:15:59.58ID:???
ミラーリング、手軽で便利なのにな
0449NAME IS NULL
垢版 |
2017/07/07(金) 19:19:13.94ID:???
>>447
Standardのライセンス2つで安価、手軽に二重化出来ること
試しにAlwaysOn構築しようと思ったら、SQLServer外の条件で制約多くて
0452NAME IS NULL
垢版 |
2017/07/19(水) 07:37:48.82ID:???
>>449
AlwaysOnは知らんが、ミラーリングの場合、待機側はライセンス要らないよ
0453NAME IS NULL
垢版 |
2017/07/19(水) 10:59:44.53ID:???
ますますミラーリングから離れられないわな
AlwaysOnは1台につき1ライセンス必要だし
0454NAME IS NULL
垢版 |
2017/07/20(木) 00:52:16.15ID:???
ミラーリングでライセンスいらないのは、完全に待機のみの場合だけだったはず
ダウンタイムの短縮には役に立つけど、負荷分散には使えないぞ
0455NAME IS NULL
垢版 |
2017/07/20(木) 09:59:09.19ID:???
ミラーリングは負荷分散に使えないが
0457NAME IS NULL
垢版 |
2017/07/31(月) 21:23:54.39ID:???
SQL Server絡みの地雷率が高すぎてうんざりしてきた
windowsしか使えないのでこれ使いました!
プログラムはよくわかんないので中身は適当です!
十数年分の滅茶苦茶に蓄積されたデータは再利用できるようにしてください!
みたいのしかねえ
0458NAME IS NULL
垢版 |
2017/07/31(月) 21:46:50.58ID:lcWS9MWM
>>457
知識の蓄積もない、Microsoftは利用者を育てることが重要だと思ってないからな。
0459NAME IS NULL
垢版 |
2017/08/01(火) 02:12:40.31ID:???
>>458
サポート費用払う前提だがそれなりの対応してると思う
何か問題でもあったのか?
0460NAME IS NULL
垢版 |
2017/08/01(火) 08:09:16.36ID:???
>>457はMSをディスってるんじゃなくてその利用者をディスってるんだろ
むしろそんな連中でもとりあえずのシステムが組めるMS製品群スゲーって話
まあ引き継ぎとかでうんざりする気持ちはよくわかるが w
0461NAME IS NULL
垢版 |
2017/08/01(火) 10:39:33.77ID:???
>>460
とりあえずじゃないからSQLServerの地雷案件が多いんだよな
設定もろくにせずに遅くなったら魔法の言葉「MSの製品だからしょうがない」で誤魔化そうとする阿呆多すぎる
0462NAME IS NULL
垢版 |
2017/08/01(火) 10:45:07.93ID:XS4cIuUu
>>459
日本マイクロソフトのサポートもレベルがひどい
0463NAME IS NULL
垢版 |
2017/08/01(火) 12:48:27.45ID:???
>>461
いちゃもんつけたいだけのアホ乙 w
0464NAME IS NULL
垢版 |
2017/08/01(火) 13:30:45.92ID:XS4cIuUu
>>463
日本ユニシスおつ
0465NAME IS NULL
垢版 |
2017/08/28(月) 21:43:46.23ID:???
教えてください。

SQLServer の View でトリガを使って別のテーブルの編集を行いたいと思います。
ほぼこのページの通りに書いてみたのですが、View の参照元のテーブルにレコードを追加してもトリガが実行されないようです。
https://msdn.microsoft.com/ja-jp/library/def01zh2(v=vs.120).aspx

実際のテスト環境は以下の通りです。
・DB: A
 テーブル01

・DB: B
 ビュー01 (DB:Aのテーブル01を参照)
  トリガ01 (ビュー01に対して INSTEAD OF INSERT でテーブル 02 に情報を追加)
 テーブル02 (テーブル01のキー項目に関連づけて、追加項目を登録)

DB:B は DB:A を参照した試験環境で、DB:B を削除するだけで後腐れなく試験環境を除去できないかな、と考えました。

DB:A のテーブル01にトリガを仕掛ければ問題なくやりたいことは出来るのですが。
ビューのトリガを動かすのには何か設定が必要なのでしょうか。
0466NAME IS NULL
垢版 |
2017/09/09(土) 20:24:20.28ID:???
SET ARITHABORT はヘルプやノウハウ掲示板ではON推奨になってるけど、逆の場合もあるようで、とあるストアドでは

パラメータ:日付指定→行番号取得→本処理
1.ADOのデフォルトでOFF: 1秒
2.SSMSのデフォルトでON: 20秒
3.ストアド内で SET ARITHABORT を記述: 20秒(1、2どちらもONでもOFFでも同じ)
4.ストアド内の記述を外し、SSMSのオプション設定でOFFに変更: 1秒

パラメータ:行番号指定→本処理
5.ADOのデフォルトでOFF: 20秒 ←これが問題だった
6.SSMSのデフォルトでON: 20秒
7.ストアド内で SET ARITHABORT を記述: 20秒(5、6どちらもONでもOFFでも同じ)
8.ストアド内の記述を外し、SSMSのオプション設定でOFFに変更: 1秒
9.その後、ADOのデフォルトでOFF: 1秒 ←解決

パラメータは後者の方が処理が少ないのに、妙に遅かったという問題
接続コンポーネントのSET ARITHABORTのデフォルトの違いによって実行プランが分かれるという話を見て、以上のことをごちゃごちゃやってたら直った
でも解決法が逆

開発当時を覚えてないけど、前者は最初に実行プランができたのがADOでの実行で、後者はSSMSだったのかもしれない
つまり
A.先にADOでSET ARITHABORT OFFで実行→SSMSでONで実行→実行プランが分かれる
B.先にSSMSでONで実行→ADOでOFFで実行→ONの実行プランが使われる
C.Bを解除するにはSSMSでOFFで実行(および再コンパイル?)
つまり、散見するノウハウとは逆にSSMSを常にSET ARITHABORT OFFにした状態で開発した方がいいのかもしれない
ADOもSET ANSI_WARNINGSはONなので、SET ARITHABORTがOFFでも0除算エラーは出るし
ちなみに、SQL Serverは2014
0467NAME IS NULL
垢版 |
2017/09/09(土) 20:49:58.88ID:???
実際酷いのもいるけど、そういうのはむしろORACLE出身だったりするw(内部結合のビューのみでやりきろうとする信じられない低レベルもいる)
SQL Serverは同一ストアド内に制御文と問合せ文が同居できるため工夫の範囲が広く、むしろORACLEよりレベルの高い技術者も多いとも聞く

いずれにせよ前任者はそれを0から構築したわけで(おそらく低予算で)、前任者が悪いんでなく、引き継げない後任者のレベルが低いと考えるべき
前任者のレベルが低いと言うならむしろ引き継ぐだけでなく改善して、処理速度を数十倍〜数百倍に上げてみせるべき
0468NAME IS NULL
垢版 |
2017/09/27(水) 13:50:33.70ID:WjHJ/OaP
復旧モデルについてなのですが、「完全」よりも「単純」の方が余計なことをしない分
処理速度自体は総じて速いという認識で良いのでしょうか?
0470NAME IS NULL
垢版 |
2017/09/27(水) 19:15:37.86ID:???
>>468
処理速度はほとんど変わらないけど、完全はトランザクションログのメンテナンスを疎かにしてトラブル起きやすいイメージ
0471NAME IS NULL
垢版 |
2017/09/27(水) 22:49:22.28ID:???
単純でもトランザクションのロールバックはできるわけだから、ログは取ってるんだが
一括ログ可能な操作だと、単純でも一括ログ方式の最少ログしか取ってないのかな

そうじゃないなら、速度的には一括ログが一番早いんじゃないんじゃね
体感できるとは思えんけど
0472NAME IS NULL
垢版 |
2017/09/28(木) 01:01:37.66ID:???
バッチ処理で大量にデータを
ローディングするようなシステムではそれなりに差が出るよ
BULK INSERTでだいたい20~25%くらい短縮できる
0473NAME IS NULL
垢版 |
2017/09/29(金) 16:50:08.86ID:???
>>472
完全と一括ログの比較じゃなくて
単純より一括ログの方が早いって話?
0474NAME IS NULL
垢版 |
2017/09/29(金) 23:26:37.10ID:???
>>473
単純は一括と同じでしょ
そこは試してないけどマニュアルにはそう書いてるよ
0477NAME IS NULL
垢版 |
2017/10/05(木) 20:59:09.87ID:???
まだ2005が現役で動いているのに
0479NAME IS NULL
垢版 |
2017/10/05(木) 22:00:44.94ID:???
>>478
保守契約切れても何も言ってこないので他社システムに移行したと思ったら、単にケチってただけだったという・・・
0480NAME IS NULL
垢版 |
2017/10/06(金) 22:25:21.69ID:???
うちの社内システムなんてSqlServer2000+VB6だぞw
0481NAME IS NULL
垢版 |
2017/10/07(土) 14:58:41.23ID:???
安定稼働してるDBMSを変更する理由がないからなぁ
ORACLEとかサポート切れたら不安しかないけど
0483NAME IS NULL
垢版 |
2017/10/07(土) 17:07:32.43ID:72uw01jP
格好の標的だね
metasploitみたいの使って簡単に攻撃されるよ
0484480
垢版 |
2017/10/07(土) 17:54:07.20ID:???
>>481
そういやいまだにoo4o使ってるシステムもあったw
0486NAME IS NULL
垢版 |
2017/10/08(日) 22:37:59.43ID:???
そもそもDBに不特定多数が直接接続できるシステムがまれだと思うが
0487NAME IS NULL
垢版 |
2017/10/08(日) 22:42:53.11ID:XmeriWwC
そもそもそういう発想がセキュリティを理解してない
0488NAME IS NULL
垢版 |
2017/10/08(日) 22:43:14.23ID:???
いやまあSQL Slammerみたいな例もあるから何とも言えんけど
DBサーバそのものがネットワークに晒されてるような環境とそうじゃない環境じゃ
求められるセキュリティ強度も違うんじゃないかね
0489NAME IS NULL
垢版 |
2017/10/09(月) 06:16:11.40ID:???
>>486
DBに(社内の)不特定多数が直接接続できるのはまれだと思うがDBが入ってるサーバーに(ログインはできないけど)直接接続できるケースは多いと思うぞ
0490NAME IS NULL
垢版 |
2017/10/09(月) 09:17:26.00ID:???
別サーバーからSSMSからは接続出来ないのに
sqlcmdからは操作出来ちゃうアホな設定のDBがあったなあ
0492NAME IS NULL
垢版 |
2017/10/09(月) 17:49:41.05ID:???
>>490
技とそういう設定にしてるんじゃないか?
0493NAME IS NULL
垢版 |
2017/10/16(月) 09:56:16.87ID:cuhMHRkq
SSMSの最新版が出ているようですが、入れると何か良い事ありますか?
0494NAME IS NULL
垢版 |
2017/10/18(水) 23:00:33.28ID:???
病気が治って彼女が出来て宝くじに当たって出世しまくるなどいい事ずくめ
0495NAME IS NULL
垢版 |
2017/10/21(土) 12:57:32.75ID:???
Queryのウインドウでは、色付きで分かり易くクエリが表示出来ますよね。
コピペしてワードなどに貼り付けるとその色情報が失われますが、
どうにかして文字だけでなく色もコピペできませんか?
0496NAME IS NULL
垢版 |
2017/10/21(土) 13:11:28.80ID:???
>>495
文法読み取って色表示しているのがクエリエディタの機能だから無理じゃね
0497NAME IS NULL
垢版 |
2017/10/21(土) 14:17:38.53ID:???
>>495
同じ機能を持ったテキストエディタに張り付ければいいじゃん
0498NAME IS NULL
垢版 |
2017/10/21(土) 17:12:43.60ID:???
例えば社員テーブルに複数の社員のデータを一気に追加する場合に
社員番号をキーとして、
もしテーブルに該当社員がいればUpdate、
いない場合はInsertしたいのですが、
そう言う処理を簡単にやるコマンドはありますか?
0501NAME IS NULL
垢版 |
2017/10/21(土) 17:57:32.74ID:???
ありがとうございました。
0502NAME IS NULL
垢版 |
2017/10/21(土) 21:16:04.76ID:???
>>495
「形式を選択して貼り付け」じゃないの?
rich text formatでクリップボードにはコピーされてるはず
0503名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 07:09:30.09ID:???
その後、mergeをいろいろ試しています。
社員更新データを#で始まるローカル一時テーブルに入れておいて、
社員テーブルにマージする方針で出来たのですが、そのやり方で良いでしょうか?
調べていると、Temporal tablesと言うのもあるようですが今回のマージ処理に使うと何か良い事ありますか?
0508名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 14:58:58.59ID:???
>>503
名前紛らわしいけど
temporary tableとtemporal tableは全く別物

テンポラリテーブルは一時テーブル
テンポラルテーブルは決まった日本語訳ないけど”時間テーブル”みたいな意味
バージョン管理や履歴管理のために使う
0510NAME IS NULL
垢版 |
2017/10/22(日) 21:45:55.65ID:???
>>506
テーブルに入れずにmergeできる?
0513NAME IS NULL
垢版 |
2017/10/22(日) 23:17:00.45ID:???
>>512
マニュアル読めよ
ダメな子だな
0514NAME IS NULL
垢版 |
2017/10/23(月) 12:22:06.75ID:???
他は知らんがSQLServerのmergeはただの場合分けでupdateとinsert書いてるだけなんだから
updateとinsertに書けることは大体書ける
0516NAME IS NULL
垢版 |
2017/10/23(月) 15:13:53.67ID:???
>>515
マニュアルに例も含めてまんま書いてるのにそれすら読めないのか?
仕事でデータベースさわってるなら今すぐ辞めろ
みんなが迷惑する
0517NAME IS NULL
垢版 |
2017/10/23(月) 15:27:52.10ID:???
505辺りから質問者とは別の人だろ
0518NAME IS NULL
垢版 |
2017/10/23(月) 15:28:32.51ID:CzSV0ugc
普通のワークテーブルも作ったらいけない決まりがあるのか?
0519NAME IS NULL
垢版 |
2017/10/23(月) 21:08:58.07ID:???
>>516
具体的に書けないなら黙ってろよ
マジでウザイわ
0520NAME IS NULL
垢版 |
2017/10/23(月) 21:11:50.12ID:mf1jBI9V
データの途中経過も分からない作りにしたい人はどういう感覚なんだろうね。
0521NAME IS NULL
垢版 |
2017/10/23(月) 21:58:30.84ID:???
>>517
503の書き方からして同一人物だろ
0522NAME IS NULL
垢版 |
2017/10/29(日) 00:25:48.63ID:???
SQL Serverの操作に特化したPowerShellがあるって聞いたんだけど
このスレには使ってる人いないのかな?
SSMS使えない環境だとそれなりに威力を発揮するのか知りたかったのだが
0523NAME IS NULL
垢版 |
2017/10/30(月) 22:53:25.46ID:0uDb1bS4
壊滅的にcliのセンスがないmsにそんな期待するだけ無駄
0524NAME IS NULL
垢版 |
2017/10/30(月) 23:07:01.23ID:???
sqlserverでpowershell使っている人いないだろ

複数のsqlserver運用している人がサーバ設定いちいち手作業でするのが面倒くさい場合設定変更のスクリプトをpsで作ったり

あるいはベンダーがクライアントの設定を変えたい時psでスクリプト作ってクライアント送って実行してもらうとかじゃね
0525NAME IS NULL
垢版 |
2017/10/31(火) 11:37:21.58ID:IzoEenp0
>>524
SQL Serverそのものが、PowerShellのスクリプトを吐くんだが?
0526NAME IS NULL
垢版 |
2017/10/31(火) 12:30:18.27ID:???
>>525
>SQL Serverそのものが、PowerShellのスクリプトを吐く
kwsk
どこでどんなスクリプト吐くんだ
それはクライアントツールじゃなくてSQL Serverそのものが吐いてるのか?
0527NAME IS NULL
垢版 |
2017/10/31(火) 13:10:45.30ID:IzoEenp0
>>526
management studio
0528NAME IS NULL
垢版 |
2017/10/31(火) 17:24:38.56ID:???
>>527
SSMSがどんなサーバ設定のスクリプト吐くの?

まあそもそもSSMSはクライアントツールであって、それがPSスクリプト吐いたからって、SQL ServerそのものがPSスクリプト吐いてるわけじゃないんだけど
0530NAME IS NULL
垢版 |
2017/10/31(火) 22:56:42.42ID:???
教えてください。

他のジョブの状態によって特定のジョブを実行するかどうかを判定するストアドを書きたいと思います。
ジョブの状態は システムのストアドの msdb.dbo.sp_help_job を利用することで取得できます。
これの特定のカラム(current_execution_status)の値を参照したいので一時テーブルに結果を保存しました。

insert into #temp
exec msdb.dbo.sp_help_job;

これを単体で実行する分には問題ありませんが、自作のストアドの中で実行すると
「INSERT EXEC ステートメントは入れ子にはできません」とエラーが発生します。

無視しても一時テーブルには結果が保存されるのですが、あまり気持ちよくないことと、
自作のストアドをトリガなどの中で実行すると例外を捕捉されてそこで終わってしまいます。
ので、対策を行いたいと思います。

1) 諦める
2) msdb.dbo.sp_help_job の中身を解析して自作する
3) SQL CLR で msdb.dbo.sp_help_job の結果を返すファンクションを作る?

どちらもなんだかな、な気がします。
ネットを見る限りではこのストアドを使用した記事は多そうなので、使用事例も多いはずなのですが解決策が見つかりません。


問題は、内部で insert into を使用しているストアドの結果を insert into するとエラーが発生することなのですが、
こういうケースでは一般にどのように対応するのが定石なのでしょうか。
0531NAME IS NULL
垢版 |
2017/10/31(火) 23:03:51.74ID:???
>>530
ストアドをテーブル関数化すればselect使えるからうまくいくかも
0532NAME IS NULL
垢版 |
2017/10/31(火) 23:48:42.51ID:???
とりあえずエラートラップして握りつぶせば良いんじゃね
0534530
垢版 |
2017/11/01(水) 22:25:35.36ID:???
みなさん、ありがとうございます。

>>531
自分のスキルでは出来ませんでした。。

>>532
try catch で握りつぶすってことですよね。
それをやると件のエラーが出たところで catch の側に行ってしまうので、結果がテーブルに保存されないのです。

>>533
教えていただいた URL の手法で出来ました。
ただ。本番機の設定を変更せねばならないのですが、NG を出されました。
残念。無念。

スケジュール調整の件、覚えておきます。
今回のは幸いに単純なのでなんとかなりそうなのですが。すっきりしないなぁ。
0535NAME IS NULL
垢版 |
2017/11/09(木) 01:07:32.60ID:???
初心者です。
二つのテーブルが有って、その両者に同じ名前のカラムが有って、それらはそれぞれプライマリキーに設定されています。
その二つのテーブルをマネージメントスタジオでダイアクラムを表示してリレーションシップで結びます。
これで外部キーの設定が出来たと思ったのですが、そうでは無いようでした。
外部キーの設定には、また別の操作が必要でした。
ここで疑問なのですが、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態は、どういう状態なんですか?
0536NAME IS NULL
垢版 |
2017/11/09(木) 12:30:07.76ID:3vuEsp4f
見てのとおり、二つのテーブルをダイアクラムでリレーションシップの線を結んだだけの状態、です。
0537NAME IS NULL
垢版 |
2017/11/09(木) 13:09:26.62ID:???
>>536
なるほど。
その場合、リレーションシップを結んでいるかいないかで
それらのテーブルに対するSQLの結果が異なる場合はありますか?
つまり単に線で結んでいるだけなら、SQLには影響しないと考えて良いですか?
0538NAME IS NULL
垢版 |
2017/11/09(木) 13:19:48.42ID:???
SQL欄表示すりゃ何してるか分かるよ
0539NAME IS NULL
垢版 |
2017/11/10(金) 10:43:05.09ID:???
SQLServerというよりか、ManagementStudioの話なんですが
ビューの作成や保守が死ぬほど使いづらいです。

ダイアグラムペイン、抽出条件ペイン ともに要らなくてSQLペインのみで作業しようにも
タブ入らないし、保存後に開き直すと勝手に整形されるし・・・

ストアドの作成/保守するときと同じく
CREATE(ALTER) VIEW 〜 っていう画面にできないんでしょうか。
0541NAME IS NULL
垢版 |
2017/11/10(金) 12:56:12.39ID:???
新規クエリタブ開いてコピペしろ
アホらしいがこれが一番早い
0542NAME IS NULL
垢版 |
2017/11/10(金) 13:18:24.75ID:???
新規に作る分にはいいんですが
以前に作ったビューの手直しをするとき
SQL文を勝手に整形するのだけでも止められないですかねぇ
0543NAME IS NULL
垢版 |
2017/11/10(金) 13:22:51.03ID:???
ムリダナ(・x・)
0544NAME IS NULL
垢版 |
2017/11/10(金) 18:53:31.86ID:???
普通viewなんかexcelの計算式でviewのsql文作ってコピペで張り付けて作るだろう
項目数が100以上あろうがexcelのファイル定義書があれば数分でできるぞ
0545NAME IS NULL
垢版 |
2017/11/10(金) 18:57:49.31ID:+oA2Me4B
エクセルにsql作れる関数なんかあったっけ?
0546NAME IS NULL
垢版 |
2017/11/10(金) 19:42:05.74ID:???
>>545
関数はない計算式だよ

例えば、excelのA列にカラム名
B列に別名があったら
C列1行目に=",["&A1&"] AS ["&B1&"]"
と計算式を1つ作り下へコピーすれば
カラム部分のSQL文が簡単にできる
sumしたいカラムとかも計算式を工夫すれば簡単にできる。
0547NAME IS NULL
垢版 |
2017/11/10(金) 21:18:25.39ID:5FHSQ6Bb
そういう話ではない。初心者なのかSQLスクリプトを使用する習慣がないようだよ。
0548NAME IS NULL
垢版 |
2017/11/15(水) 10:18:50.96ID:6Q/c6Tcb
LEFT JOINする時に、両方のテーブルに例えば共通のidと言うカラムがあると、
select * from T1 left join T2 on T1.id = T2.id;
を実行すると、idのカラムが二個出て来ますよね。
それを一個にするにはどうしたら良いですか?
select * をやめて必要なカラムを書き並べて取り出すしか無いですか?
0551NAME IS NULL
垢版 |
2017/11/15(水) 11:44:10.62ID:???
内部結合ならともかく、外部結合だと
その二つは違う場合があるんだが
0553NAME IS NULL
垢版 |
2017/11/15(水) 12:19:38.98ID:2A3D0a21
で?
0554NAME IS NULL
垢版 |
2017/11/15(水) 12:29:05.63ID:???
>>548
select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
とか T2だけカラムを羅列する
0555NAME IS NULL
垢版 |
2017/11/15(水) 12:43:55.38ID:LwMIMZHH
また自演か
0556NAME IS NULL
垢版 |
2017/11/15(水) 14:31:55.25ID:6Q/c6Tcb
>>554
>select T1.* ,T2.hage1 ,T2.hage2 from T1 left join T2 on T1.id = T2.id;
ありがとうございました。
ところで、
select T1.* ,T2.*(not hage3) from T1 left join T2 on T1.id = T2.id;
みたいな書き方はSQLでは出来ませんか?
0558NAME IS NULL
垢版 |
2017/11/15(水) 22:24:07.29ID:???
>>556
お前は髪が薄い俺を怒らせたから教えない
0560NAME IS NULL
垢版 |
2017/11/16(木) 12:27:44.35ID:RhBRQtps
ハゲの事を薄毛って言うの本人だけ説
0561NAME IS NULL
垢版 |
2017/11/23(木) 21:49:46.78ID:???
質問なのですが
sqlcmdやbcpでリモートのSqlServerにログインする場合
パスワードを何度も間違えても特にロックアウトされたりとかはしないですよね?
0562NAME IS NULL
垢版 |
2017/11/23(木) 21:55:28.92ID:???
>>561
Windows認証ならADやPCのローカルポリシーでパスワードのロックアウト設定引き継ぐことはあるよ
sa認証は予め設定する必要あるけど
0563NAME IS NULL
垢版 |
2017/11/24(金) 22:42:10.74ID:???
マイクロソフトのサイト行くとSqlServerのサンプルデータベースとして
「AdventureWorks」ってのが出てくることが多いんだけどあれって昔からあるよね?
あれの元ネタというか由来ってなんなのかな?
0564563
垢版 |
2017/11/27(月) 04:37:45.34ID:???
誰もわからんか・・・
自分も調べたけどわからなかった・・・orz
Accessにも出てくるし、20年来の謎
0565NAME IS NULL
垢版 |
2017/11/27(月) 08:17:32.83ID:???
サンプルだからテキトーに付けた名前だろ
下手に実在の会社と被ると色々面倒だからそこら辺は調べてるとは思うけど
0566NAME IS NULL
垢版 |
2017/11/27(月) 17:09:44.64ID:k8i9IH/m
AdventureWorksだと、ただの検証用という意味で、何のひねりもない。
0568NAME IS NULL
垢版 |
2017/11/29(水) 17:56:41.10ID:???
>>567
そんな情報良く気付くなあ。感心
0569NAME IS NULL
垢版 |
2017/12/04(月) 22:24:53.03ID:???
SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていたんだけど
入れないって連絡きたけどそんなことってあるのか?
0570NAME IS NULL
垢版 |
2017/12/04(月) 22:27:52.00ID:6wISNT0k
INSERTやMERGEでは
VALUES ( values_list)
で沢山の値を指定出来ますが、生成されるSQL文は何文字以内などの制限はありますか?
例えば一気に100万件くらいのデータを追加しても正常に動きますか?
何らかの制限があれば教えて下さい。
0571NAME IS NULL
垢版 |
2017/12/05(火) 13:21:31.06ID:???
>>569
結構前のVerだとインスコ時に明示的に追加してやらんとならんかったような

>>570
1ステートメントあたりの文字数制限はあった気がする
それ以内なら何千万行でも問題ない
0572NAME IS NULL
垢版 |
2017/12/05(火) 14:41:05.87ID:???
SSMSをインストールしたら誰でもDBにログインできるってなら
俺のPCは世の中の全てのSQL Serverにつながるのかね
0573NAME IS NULL
垢版 |
2017/12/05(火) 19:19:58.29ID:75Z5+bpM
>>572
どういうバカの思考回路だとそんな結論になるのかちょっとだけ気になるよ
0574NAME IS NULL
垢版 |
2017/12/05(火) 19:47:15.06ID:???
他人の夢の中にログインできるDC mini が欲しい
0575NAME IS NULL
垢版 |
2017/12/05(火) 19:58:36.60ID:???
>>573
>SSMSってインストールしたユーザーならWindows認証は必ず通れると思っていた
0576NAME IS NULL
垢版 |
2017/12/05(火) 20:20:32.04ID:75Z5+bpM
>>575
ああそうか「ユーザー」をキミ自身のことだと考えたわけか
なかなか新鮮な文脈解釈だと思うよ
0577NAME IS NULL
垢版 |
2017/12/07(木) 13:42:17.87ID:l7erEtxE
LinuxでSSISをインストールしたいんだけど、エディッション選択で何を選んでも
”Could not write Licensing information”と出て先へ進めない。

SQL Server本体の時はDevelopper Editionを問題なくインストールできたのになんでよーー
0578NAME IS NULL
垢版 |
2017/12/07(木) 18:44:45.88ID:IMylgnN4
>>577
エラーメッセージを素直に解釈すれば、パーミッションの問題たろうに。
0579NAME IS NULL
垢版 |
2017/12/08(金) 08:11:01.53ID:???
>>571
バージョン聞くの忘れたけど多分2008か2012なんだよね
調べてみます
ありがとう
0580NAME IS NULL
垢版 |
2017/12/08(金) 16:45:10.45ID:???
>>81
>>390
昨日現象が出て、今スレ開いたらそのものずばりの人がいてやったーと思ったらまだ解決してねえ!
0582NAME IS NULL
垢版 |
2017/12/13(水) 21:30:09.63ID:???
全くの無知からSQLサーバーの担当になりました。
データベースからデータを引っ張ったりして資料作成する業務なんですが、いい勉強方法ありませんか?
引き継ぎも無しに任されたので混乱してます
0583NAME IS NULL
垢版 |
2017/12/13(水) 21:43:37.22ID:???
>>582
とっつきやすいのはMSの自習書あたりかね
0584NAME IS NULL
垢版 |
2017/12/13(水) 22:55:55.46ID:???
作成したDBをSSMSで削除したいのですが、使用中で削除出来ない場合があります。
最悪、サーバーを再起動すれば削除出来るんですが、簡単に削除する方法はありますか?
0585NAME IS NULL
垢版 |
2017/12/13(水) 23:46:30.65ID:???
接続してるユーザ全部落とせばいけるんじゃね
0588NAME IS NULL
垢版 |
2017/12/14(木) 12:19:58.71ID:???
>>586
それあかんやつやろ
ハッキングされとんで
0589NAME IS NULL
垢版 |
2017/12/14(木) 12:51:38.09ID:???
SMS 17使っていて、更新があると出るのでクリックするとダウンロードサイトが開くが
通常のインストーラーしか見当たらない。Updateはどこにあるの?
0590NAME IS NULL
垢版 |
2017/12/15(金) 10:10:54.10ID:???
>>584
使用状況モニターから掴んでいるプログラムを強制終了
0591NAME IS NULL
垢版 |
2017/12/17(日) 22:23:55.62ID:???
c#でEFの質問はここでしょうか?
0592NAME IS NULL
垢版 |
2017/12/17(日) 22:38:01.11ID:???
どんな思考経路でそんな結論に至ったのか
0593NAME IS NULL
垢版 |
2017/12/17(日) 22:54:35.12ID:???
同じMSだからだよ。それくらい気付けよな。
0595NAME IS NULL
垢版 |
2017/12/18(月) 10:37:47.27ID:???
ライセンスの話で恐縮ですが

SQL Server2016のライセンスを解説します
http://sql-oracle.com/sqlserver/?p=363



1.SQL Server 2016 Standard 4コア 1,017,000円
2.SQL Server 2016 Standard 日本語版 サーバー ライセンス 111,000円
3.SQL Server 2016 クライアント アクセス ライセンス(1CAL) 27,000円

という参考価格が出てます。実際の価格は別にして、4コアのサーバーで運用するとき

(1017,000-111000)÷27000≒33.6

と求まり、つまり34ユーザー以上だったら、1. で買った方が得、ということで合ってますか?
実際のクライアント数は50台ちょっとです。
0597NAME IS NULL
垢版 |
2017/12/18(月) 11:39:53.12ID:???
グループ会社が絡む複雑な話だったらマイクロに相談するけど
よくある中小企業のサーバー1台、クライアント50台ちょっと、という実に普通の話だもんで
0598NAME IS NULL
垢版 |
2017/12/18(月) 19:01:41.72ID:WUe68RNI
グループ会社が絡んでも別に複雑じゃないけどクロソにはとりあえず相談するだろ
0599NAME IS NULL
垢版 |
2017/12/18(月) 19:04:02.94ID:???
>>595
コアライセンスのがいいね
ただ今後SQLServer増やす予定があるならcalは他のサーバーでも
使えるのでサーバーcalライセンスのほうがいい
0600NAME IS NULL
垢版 |
2017/12/18(月) 19:10:55.79ID:???
その辺りのライセンス云々は富士通とかベンダ解説資料がぐぐると良く引っかかるよね
同じようなことしたけど、VL価格とか出てくると更に訳がわからなくなって辛かった記憶有るわ
0601NAME IS NULL
垢版 |
2017/12/27(水) 13:39:13.96ID:???
ALTER TABLE テーブル名
SET ( LOCK_ESCALATION = DISABLE )

やってもエスカレーションするぽいんだが
データベースエンジン再起動させないと反映されないの?

begin transaction
update テーブル set 項目=なんとか where 主キー=XX
select 項目 from テーブル where 主キーじゃない項目 = YY  ← これが通らない

ちなみに

select 項目 from テーブル with (nolock) where 主キーじゃない項目 = YY

だと当然にして即座に通る
0602NAME IS NULL
垢版 |
2017/12/27(水) 13:43:23.90ID:???
ちなみに 主キーじゃない項目 = YY は 主キー=XX とは全く別レコード

2行目のupdateした直後にロックのかかり具合を見ると
type=PAGE、request_mode=IX と type=KEY、 request_mode=X
がそれぞれ、数個出現してる
0603NAME IS NULL
垢版 |
2017/12/27(水) 19:25:55.49ID:lvRR+7xm
SELECTで行ロックしたいのかどうかがわからない。

あなたの説明だと行ロックしたいのか、ただロックエスカレーションをどうにかしたいのか、なんだかわからない。
0604NAME IS NULL
垢版 |
2017/12/27(水) 20:08:35.42ID:???
>>74-79
この辺に、Accessファイルをリンクサーバで使う話が出てますけど、SQLServerが64bitでAccessが32bitの時の方法を知っている方いませんか
SQLServerも32bitならできることは確認しています
> ACE.OLEDBってのがあって、これは64ビット版もある
これも試してみましたが、うまく使えていません
動作確認のために純粋な64bit環境を用意してみようとも考えていますが、Officeはしばらく32bit版を使う必要があるので、純粋な64bit環境に移行は当分できません
アドバイスをお願いします
0605NAME IS NULL
垢版 |
2017/12/27(水) 21:12:25.91ID:???
>>604
ここみて32bitのAccessDatabaseEngine.exeをインストールすればよい
http://plus-sys.jugem.jp/?eid=446

officeの64bitが入ってたら一旦アンインストールすれば普通にインストールできる
0607NAME IS NULL
垢版 |
2017/12/27(水) 21:39:07.90ID:???
>>605
ここのリンク先は参考にならないわ
sqlserverやosのbitは無視して使いたいaccessファイルのbit基準でAccessDatabaseEngine.exeを
msからダウンロードしてインストールすればよい
0608NAME IS NULL
垢版 |
2017/12/28(木) 02:48:09.70ID:???
>>605>>607
Officeが既に32bit版なので、32bit版のACE.OLEDBは入っていたので、32bit版のAccessDatabaseEngine.exeはインストールしたことはありませんでした
試してみます
レスありがとうございました
0609NAME IS NULL
垢版 |
2017/12/28(木) 03:10:35.02ID:???
普通に32ビットのACCESS入れたら
32ビットのSQLServerクライアントも入ったと思ったがなぁ
0610NAME IS NULL
垢版 |
2017/12/28(木) 03:25:09.72ID:???
もしかして、SQLServerからACCESS(のデータベース)にリンク張りたいって話か?
だったらSQLServerと同じビット数のACE入れないとダメだぞ

SQLServer(64ビット)入れたサーバに、32ビットACCESSも入れたらなら
ACEの64ってサポートされてないはず

どうしてもやりたいなら>>605のリンク先
0611NAME IS NULL
垢版 |
2017/12/28(木) 03:44:32.78ID:???
>>601
ALTER TABLEでLOCK_ESCALATION = DISABLE したとしても
ロックエスカレーションが完全に禁止されるわけじゃないぞ

そもそも、そのselectとupdateは同じトランザクションなのか?
分離レベルは何でやってるのとか色々考慮点はあるんだが
0612NAME IS NULL
垢版 |
2017/12/28(木) 04:16:09.80ID:???
>>602
インテントロックは行レベルで取得されない気がしたんだがなぁ
そもそも、ページにIXかかっても、そのページにIXロックかけれるんだぜ
(もちろん行単位のロックが競合しないとか条件はあるが)
0613601
垢版 |
2017/12/28(木) 09:30:08.82ID:???
>>603 >>611
selectは行ロック不要です。

ただ問題としたいのは
最初のupdateにより、その1行はロックされるのは当然にして
全く別の行のSELECTができなくなる(ロックされて読めない)、っていう挙動が解せないという話です。

たった1行のupdateに対して、かなり広範囲にロックかかってる気がしてならないのです
0614NAME IS NULL
垢版 |
2017/12/28(木) 09:33:45.08ID:???
一つ考えられるのは、
updateで1行を更新するとき、その項目はインデックス(非クラスタ)の一部になってます。

まさかインデックスに使われている項目を更新すると
さながらテーブルロックのような状態になるなんてことないですよね?
0615NAME IS NULL
垢版 |
2017/12/28(木) 13:00:00.38ID:???
>>614
インデックスの項目更新したらインデックスの再構成しないと遅くなりそう
インサートとデリートでインデックス項目変更したほうがいいんじゃね
0616NAME IS NULL
垢版 |
2017/12/28(木) 16:51:57.21ID:???
>>613
だからIXロックはIXロックをブロックしない
IXロックがブロックの直接の原因じゃない

たとえばファントムリード防止したかったら、範囲ロックせざるを得ないんだが
そのあたり理解してる?
0617NAME IS NULL
垢版 |
2017/12/28(木) 19:28:33.72ID:???
>>605>>607>>609>>610
自己解決できました
32bit環境で機能していたのは確認していましたが、32bit版のACE.OLEDBはなくJET4.0だったので、32bit環境でACE.OLEDBでためしたところうまき行きませんでした
結果は、64bit環境と同じエラーで、セキュリティの問題でした
JET4.0では使えるのにACE.OLEDBではダメと言う状況で、SQLServerの実行アカウントをネットワークサービスアカウントではなく、ローカルのユーザにして対応できました
0618NAME IS NULL
垢版 |
2017/12/29(金) 09:16:03.77ID:FyU/cwrw
>>615
素人は口出すな
0619NAME IS NULL
垢版 |
2017/12/29(金) 09:20:54.56ID:FyU/cwrw
>>613
それぞれ別レコードで、かつUPDATE、SELECTの順に行う理由がわからない。

別のレコードであればSELECTしてから、UPDATEでもいいんじゃないのか?

またはUPDATEしたあとにコミットしてからSELECTすればいい。
0621NAME IS NULL
垢版 |
2017/12/29(金) 11:04:43.57ID:dtNZwIie
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

SEPQX7O4N7
0622NAME IS NULL
垢版 |
2018/01/01(月) 12:26:46.33ID:???
テーブルの中のカラム名のうち、Identity属性を持っているものを取り出す方法
はありますか?
0623NAME IS NULL
垢版 |
2018/01/05(金) 23:34:44.66ID:???
sys.columnsでis_identity=1のもの検索すれば良いんじゃね
0624NAME IS NULL
垢版 |
2018/01/23(火) 16:28:39.64ID:???
初めてインストールしたは良いけど、起動して新規のデータベースをつくるにはどうするのかが分からん(-_-;)
0625NAME IS NULL
垢版 |
2018/01/23(火) 16:31:34.95ID:???
SSMSで作ってどうぞ
0626NAME IS NULL
垢版 |
2018/01/23(火) 17:04:59.69ID:???
>>625 さん、ありがとうございます。
SSMSというのをインストールして起動したら、なんか分かるような気がしてきました。
Accessとそんなに変わらんだろうって勝手に思ってたので焦ってます(笑)
0627NAME IS NULL
垢版 |
2018/01/23(火) 19:29:57.39ID:a3XdT7kq
焦らんでも中身はAccessとそんなに変わりなく使えるから落ち着いてどうぞ
0628NAME IS NULL
垢版 |
2018/01/24(水) 01:06:35.63ID:???
ACCESSはフロントエンドとDBMSと一体だからな
SQL ServerはDBMSだけだし

ACCESSからSQL Server使うでもいいんじゃない
まっさらな新規DB作るのだけ苦労するかもしれんが
0629NAME IS NULL
垢版 |
2018/01/26(金) 05:35:03.89ID:???
ssmsでカラムの表示の順番って指定出来る?
0630NAME IS NULL
垢版 |
2018/01/26(金) 12:49:54.65ID:pxozcjcA
>>629
ビューでも作れば?
0631NAME IS NULL
垢版 |
2018/01/26(金) 19:36:22.24ID:???
>>629
編集画面のこと言ってるなら無理だと思う
0632NAME IS NULL
垢版 |
2018/01/30(火) 17:06:23.96ID:???
やりすぎ防犯パトロール、特定人物を尾行監視 2009年3月19日19時7分配信 ツカサネット新聞
http://headlines.yahoo.co.jp/hl?a=20090319-00000026-tsuka-soci

この記事で問題になった通称やりすぎ防パトは、創価学会と警察署が引き起こしていたようです

掻い摘んで説明すると

・創価学会は、町内会や老人会、PTA、商店会等の住民組織に関し、学会員が役員になるよう積極的に働きかける運動を
 90年代末から開始し、結果、多くの住民組織で役員が学会員という状況が生まれた

・防犯パトロールの担い手は地域の住民と住民組織で、防犯活動に関する会議や協議会には、住民組織の代表に役員が出席する為
 防犯活動や防パトに、創価学会が間接的に影響力を行使可能となった

・防パトは住民が行う為、住民が不審者や要注意人物にでっち上げられるトラブルが起きていたが
 創価学会はその緩さに目をつけ、住民組織を握っている状況を利用し、嫌がらせ対象者を不審者や要注意人物にでっち上げ
 防パトに尾行や監視、付き纏いをさせるようになった

・防パトは地元警察署との緊密な連携により行われる為、創価学会は警察署幹部を懐柔して取り込んでしまい
 不審者にでっち上げた住民への嫌がらせに署幹部を経由して警察署を加担させるようになった

・主に当該警察署勤務と考えられる創価学会員警察官を動かし、恐らく非番の日に、職権自体ないにもかかわらず
 私服警官を偽装させて管轄内を歩いて回らせ、防犯協力をお願いしますと住民に協力を求めて回り
 防犯とは名ばかりの、単なる嫌がらせを住民らに行わせた(防犯協力と称し依頼して回っていた警察官らの正体は恐らく所轄勤務の学会員警察官)
 ※これに加えて防犯要員が同様のお願いをして回る

・こうして防犯パトロールを悪用し、住民を欺いて嫌がらせをさせつつ、創価学会自体も会員らを動員し、組織的な嫌がらせを連動して行った

つまり警察署に勤務する学会員警察官、警察署幹部、創価学会が通称やりすぎ防犯パトロールの黒幕

詳細は下記スレをご覧下さい
やりすぎ防犯パトロールは創価学会と警察署の仕業だった
https://rio2016.5ch.net/test/read.cgi/bouhan/1516500769/
0633NAME IS NULL
垢版 |
2018/02/04(日) 16:38:15.37ID:ygeeHQOY
SELECT "User"."id" AS "User__id", "User"."company" AS "User__company",
"User"."name" AS "User__name", "User"."itaric" AS "User__itaric",
"User"."system" AS "User__system", "User"."year" AS "User__year"
FROM "public"."users" AS "User" WHERE 1 = 1 ORDER BY "User"."itaric" asc,
"User"."system" desc

複数ソートを実行したいのだけれども、実行できてる??
0634NAME IS NULL
垢版 |
2018/02/05(月) 07:58:44.26ID:Q16Lz/UI
>>633
意味のないダブルクォーテーションと、意味のないWHERE句の条件と、複数ソートという謎の用語がわからない。
0635NAME IS NULL
垢版 |
2018/02/05(月) 08:28:06.73ID:???
ダブルクォーテーションはOracleから持ってきたからなのかも
複数ソートは複数キーのことかも
Whereはよくわからん

って言うか何を言いたいのかよくわからん w
0636NAME IS NULL
垢版 |
2018/02/05(月) 16:22:38.74ID:???
メディアオプションを[追加]にしてジョブで毎日バックアップしていますが
これだとどんどんバックアップファイルのサイズが大きくなってしまうので
常に最新の10日分だけ残すというバックアップの方法を教えてください
よろしくお願いします
0637NAME IS NULL
垢版 |
2018/02/05(月) 19:13:11.77ID:wLbeZJwJ
>>634
意味のないレスすんな
答えられんのなら黙ってる事だな
0638NAME IS NULL
垢版 |
2018/02/05(月) 22:52:50.94ID:Q16Lz/UI
>>637
仮定の話をするのはIT技術者ではない。
0639NAME IS NULL
垢版 |
2018/02/05(月) 22:54:32.98ID:Q16Lz/UI
Where 1 = 1 だけでSQLがまったくわかってないことがわかる。
0640NAME IS NULL
垢版 |
2018/02/05(月) 23:14:09.67ID:???
少なくとも文法はわかってるようだが?
0641NAME IS NULL
垢版 |
2018/02/06(火) 04:47:07.31ID:???
「WHERE 1 = 1」は↓みたいに書いとくと任意の行をコメントにするだけで条件の入れ替えが簡単に出来るから開発時はたまにやるかもw

WHERE 1 = 1
AND フィールド1 = '○○○'
AND フィールド2 = '△△△'
AND フィールド3 = '□□□'
0642NAME IS NULL
垢版 |
2018/02/06(火) 07:36:44.36ID:AHs/sZxD
>>641
やめろ
0643NAME IS NULL
垢版 |
2018/02/06(火) 07:49:13.23ID:???
>>641
プログラムでsql作る時普通に使うな
0644NAME IS NULL
垢版 |
2018/02/06(火) 11:48:04.77ID:???
うん。0 <> 1 も時々
0647NAME IS NULL
垢版 |
2018/02/07(水) 21:05:34.23ID:???
>>646
ゼロはオーと打ち間違えやすいので避けたい
テンキーなら間違えないが
ノートパソコンだとゼロとオーは隣あっていて打ち間違えやすい
0648NAME IS NULL
垢版 |
2018/02/07(水) 22:14:15.01ID:nx8/8ate
>>647
見間違えるのはわかるけど打ち間違えってw
それおまえだけだからwwww
0649NAME IS NULL
垢版 |
2018/02/07(水) 22:38:55.94ID:???
配列がランダムに変わるキーボードか?
0650NAME IS NULL
垢版 |
2018/02/08(木) 06:50:41.49ID:???
そもそも[O] なんて名前つけないし
0651NAME IS NULL
垢版 |
2018/02/08(木) 07:38:34.47ID:???
where 1=1はsql文の慣例句みたいなものでgoogleで検索してもいっぱいでてくる。そんな事で悩む必要はない。
http://kinocolog.com/where11/
0652NAME IS NULL
垢版 |
2018/02/08(木) 11:53:55.72ID:???
100文字以内のデータしか入れない場合には
nvarchar(100)
で良いですよね?
質問1
全角文字で半角文字でも100文字入るんですよね?
質問2
nvarchar(max)
にすると無駄にメモリやハードディスクを使いますか?
0653NAME IS NULL
垢版 |
2018/02/08(木) 13:35:25.45ID:???
回答1
Yes
回答2
No
varcharは可変長だから入ってる分だけの消費
0654NAME IS NULL
垢版 |
2018/02/08(木) 19:08:59.93ID:???
>>653
ありがとうございました。
>varcharは可変長だから入ってる分だけの消費
では、カラムが10文字でも100文字でも
とりあえずnvarchar(max) を使っておけば良いのでしょうか?
どういう場合にnvarchar(100) などを使うのでしょうか?
0655NAME IS NULL
垢版 |
2018/02/08(木) 19:18:47.90ID:???
index張らないならMAXでもいい
張るなら900バイト以下でなければならない
0656NAME IS NULL
垢版 |
2018/02/08(木) 22:35:21.32ID:???
教えてください。

テーブルA に製品の情報がたくさん登録されています。
この中から、不特定多数の特定の文字列で始まらない名称の製品を検索したいと思います。
条件が固定であれば次のような SQL を書けます。

SELECT *
FROM [テーブルA]
WHERE NOT ( [NAME] LIKE 'A%' OR [NAME] LIKE 'B%' OR [NAME] LIKE 'C%' )

条件(先頭の文字)を動的に変更するとしたら、
上のをストアドにしてパラメータで与えるとか、
条件をテーブルに保存しておくなどがあると思うのですが、SQL の書き方がわかりません。
どうするのが一般的か、教えてください。
0658NAME IS NULL
垢版 |
2018/02/09(金) 14:55:37.85ID:???
テーブル型を引数にして

where not Left([NAME], 1) in (select [Word] from @引数)

みたいな風かな
ASCII しないといかんかもしれん
0659656
垢版 |
2018/02/11(日) 00:41:15.28ID:???
>>657,658
ありがとう。
どっちのやり方も知らなかったです。

とりあえず 658 さんの方法を発展させてやってみようと思います。
657 さんの動的 SQL は便利すぎ。
0661NAME IS NULL
垢版 |
2018/02/11(日) 04:44:52.94ID:iUCuMXup
>>659
動的SQLはできるだけ使わないように。条件の組み合わせが大量になければ、静的SQLで書く。動的SQLはSQLの組み立て方によっては、可読性、保守性がさがり、さらにコーディングミスをおこし、スペースを入れわすれた等おかしなSQLを簡単に仕込んでしまう。
0662NAME IS NULL
垢版 |
2018/02/11(日) 04:51:00.67ID:iUCuMXup
>>656
それ単にパラメータによって、LIKE用の文字列を作り分けておけばいいだけ。
0663656
垢版 |
2018/02/12(月) 00:49:37.83ID:???
>>660
ありがとう。
left join で like って使えるんですね。
その結果が null のモノだけって発想がありませんでした。
こちらをまず試してみます。

>>661,662
ありがとう。
うん、そう思って動的 SQL は最後の手段にしとこうかと。
0664NAME IS NULL
垢版 |
2018/02/12(月) 07:54:28.97ID:???
こうしてまたバカのバカによるバカのためのバカノウハウが広まるのであった
0665NAME IS NULL
垢版 |
2018/02/12(月) 09:52:09.80ID:???
スマートな解決策書けてりゃ格好いいんだけどなぁ...
>>664だとバカの遠吠えにしかなってない w
0666NAME IS NULL
垢版 |
2018/02/12(月) 11:51:24.82ID:tzC/U9n1
結局、RDBになるとSQLが魔法になってプログラムの見た目はシンプルでも、RDBMSの処理が複雑になるようなものを作るやつが多すぎる。

RDBの処理が汚なくなり、無意味に負荷がかかるようなプログラミムを書いても、RDBMSの処理がどう処理しているのか考えないから、珍妙なことを推奨する。
0667NAME IS NULL
垢版 |
2018/02/12(月) 12:19:14.11ID:???
>>665
そのスマートな解決策()が動的SQLなんよ
バカには難しいらしいけんどねw
0669NAME IS NULL
垢版 |
2018/02/12(月) 19:57:26.33ID:tzC/U9n1
データベース板はレベルが低い。リレーショナルデータベースに詳しくもないのにこうだ、これが正解だと言いはる人間ばかり。
0670NAME IS NULL
垢版 |
2018/02/12(月) 22:04:38.94ID:???
せめてどこがどう「無意味に」負荷がかかってるのか書けないのかね
0671NAME IS NULL
垢版 |
2018/02/13(火) 01:01:59.31ID:mpzcP+RA
>>670
検索結果が同じSQLでも、RDBMSではSQLの構文解析(ソフトパース、ハードパース)が行われ、実行プランも作り直しなることもあり、RDBMS側の処理が変化する。

プログラムだと結果は同じなのに、こうすると遅い、速いや、意味のないコードを書くと文句を言うくせにSQLになると、とたんにRDBMSもプログラムだということを忘れているか、理解していない。

SQLは魔法ではない。
0672NAME IS NULL
垢版 |
2018/02/13(火) 06:48:41.32ID:???
別にSQLでもこう書くべきとか言う議論は普通にやられてるしお前がそう言うのを見てないだけかと
0673NAME IS NULL
垢版 |
2018/02/13(火) 19:29:30.08ID:???
>>671
同じ結果の処理を同じ手間で書けるなら、負荷は軽い方がいいに決まってるけど
で、その説明でどこがどう負荷かってるの?
まさかクエリキャッシュ効かないでコンパイル時間がとか言う気?

>>672
まあしかし、理想はそのへん意識しないでRDBMSに任せる事なんだろうとは思う
オプティマイザの動作を予想して奇妙なSQL書くのは本末転倒だし
0674NAME IS NULL
垢版 |
2018/02/13(火) 20:13:55.26ID:0W+Ckc+y
久しぶりにアツいマウント合戦開幕したなw
どっちも負けろwwww
0675NAME IS NULL
垢版 |
2018/02/13(火) 21:30:57.57ID:0W+Ckc+y
どした?おい?w
ファイッッッ!!!wwwwww
0676NAME IS NULL
垢版 |
2018/02/13(火) 21:40:47.70ID:???
SQL SERVER2014Expressが動いているWindowsサーバーのOSをクリーンインストール
する予定なのですが、データベースを丸ごとバックアップしておいて、あとで戻すなどは
可能ですか?ヒントを教えて下さい。DBのサイズは500MB 程度です。
0677NAME IS NULL
垢版 |
2018/02/13(火) 22:07:12.29ID:???
>>676
データベースのデタッチとアタッチ
0678NAME IS NULL
垢版 |
2018/02/13(火) 23:35:26.82ID:???
リンクサーバー設定とかデータベースの設定とかもバックアップする方法ってないものか
ドライブごとバックアップするしかないのかな
0679NAME IS NULL
垢版 |
2018/02/14(水) 00:04:57.46ID:???
masterバックアップして戻せば戻ったような
0680NAME IS NULL
垢版 |
2018/02/14(水) 02:50:36.19ID:kUpzGWTP
>>673
根本的にリレーショナルデータベースを分かってないのになぜ知ったかぶりをするのか?

リレーショナルデータベースは重い処理をしてるんだぞ?

リレーショナルデータベースの内部処理が見えないから、自分のしょぼいプログラムと比較にならないことをしていることに気づかない。
0681NAME IS NULL
垢版 |
2018/02/14(水) 02:53:40.84ID:kUpzGWTP
>>673
そもそもあんたの用語がおかしい。データベースを知らないと思う。データベースを使うのが精一杯で、リレーショナルデータベースの構造も知らないと思われる。

クエリキャッシュなんて言葉はデータベースエンジニアは使わない。
0682NAME IS NULL
垢版 |
2018/02/14(水) 03:07:54.32ID:kUpzGWTP
>>673
同じ結果でもいつも速いわけではない。統計情報の取得タイミング、データの傾向の変化で実行プランが最適にならない可能性もあれば、コストが高くても速いこともある。

バッファキャッシュの有無、データファイル読み書きタイミング、速度、OSのキャッシュ、ストレージのキャッシュ、ありとあらゆる条件で性能は決まるのであって、そのなかからどう処理されているかのSQL Serverの情報を元にSQL Serverが言っている処理情報の誤りまで判断して決めることだ。
0683NAME IS NULL
垢版 |
2018/02/14(水) 07:51:44.92ID:???
定期的にわくよね。当たり前の一般論をすごいことのように語るID付いてるおっさん。
0685NAME IS NULL
垢版 |
2018/02/14(水) 10:24:40.03ID:4BYcg5RC
>>677
ありがとうございました。やってみます。
0687NAME IS NULL
垢版 |
2018/02/14(水) 18:45:38.91ID:???
>>679
知らなかった。今度からmaster もバックアップする
0688NAME IS NULL
垢版 |
2018/02/14(水) 20:48:54.39ID:???
masterリストアするのは簡単じゃないから、再生成するスクリプト作って流すほうが楽かもよ
0689NAME IS NULL
垢版 |
2018/02/15(木) 18:22:36.56ID:YBD93ntd
質問です。
顧客テーブルと売上テーブルがあり、顧客IDで紐付いています。
特定の条件の売上が無い(売上テーブルにレコードが存在しない)顧客のみを抽出するには、どのような方法が考えられるでしょうか?

仮テーブルに顧客テーブルの全レコードをコピーし「特定の条件の売上が有る」顧客を削除していく、という方法は思いつきましたが、SQL文のみで実現する方法はあるでしょうか?

無いものは抽出できない、とは思うのですが…
0691NAME IS NULL
垢版 |
2018/02/15(木) 19:10:24.66ID:L39WhMJw
>>689
自ら吐いた言霊に呪われとるやんw

無いのは売上
抽出するのは顧客

な?
0692NAME IS NULL
垢版 |
2018/02/15(木) 21:10:45.04ID:???
SELECT * FROM 顧客テーブル
WHERE NOT 顧客ID IN (SELECT 顧客ID FROM 売上テーブル)

みたいな風かな
0693NAME IS NULL
垢版 |
2018/02/15(木) 21:23:39.60ID:???
>>692
そういうINの使い方は悪手だよ
NOT EXISTSかLEFT JOINを使おう
0694NAME IS NULL
垢版 |
2018/02/15(木) 21:23:57.09ID:???
>>689
>>690で答え出てるけどないものを抽出するんじゃなくて、「売上に紐付かない顧客」を抽出するってこと
0695NAME IS NULL
垢版 |
2018/02/15(木) 21:31:33.97ID:???
>>694
そういうJOINの使い方は悪手だよ
NOT EXISTSを使おう
0697NAME IS NULL
垢版 |
2018/02/15(木) 23:18:27.60ID:???
>>696
NOT EXISTSをINNER JOINにするのは無理だし
MySQLはNested Loopしか使えないからね
他の一般的RDBとは事情が違うよ
0698NAME IS NULL
垢版 |
2018/02/15(木) 23:21:53.94ID:???
>>695
NOT EXISTSのほうがパフォーマンスいいことのほうが多いけど
LEFT JOINが悪手ってわけでもないと思うけどな

少なくとも質問者はLEFT JOINを理解してない風なので
そっちからはじめたほうがいい
0699689
垢版 |
2018/02/16(金) 00:03:31.60ID:???
みなさまありがとうございます。
LEFT JOINでできるとは思いませんでした…頭が硬いですね。
教えていただいたNOT EXISTSも調べたところまさにやりたいことでした。
何とかなりそうです。
ありがとうございました。
0700NAME IS NULL
垢版 |
2018/02/16(金) 00:31:27.89ID:???
>>695
環境、データ、インデックスとかによって違うからお前さんみたいに盲信してるのが一番ヤバイ
0701NAME IS NULL
垢版 |
2018/02/16(金) 01:49:40.19ID:nepixz1J
経験上LEFT JOIN でIS NULLのほうが速い場合がほとんど
0703NAME IS NULL
垢版 |
2018/02/16(金) 05:41:07.18ID:???
>>692さんみたいな書き方を良くするんですが、これは遅いのですか?
0704NAME IS NULL
垢版 |
2018/02/16(金) 05:43:00.22ID:???
あっ、ただ自分の場合は

「WHERE NOT 顧客ID IN (SELECT 顧客ID FROM 売上テーブル)」

ではなく

「WHERE 顧客ID NOT IN (SELECT 顧客ID FROM 売上テーブル)」

と書きます。
0705NAME IS NULL
垢版 |
2018/02/16(金) 10:17:03.78ID:???
売上げテーブルに顧客IDでインデックス貼ってあればそんなに遅くない気もする
0706NAME IS NULL
垢版 |
2018/02/16(金) 10:51:09.70ID:???
692は自分だけど、後でみなさん言われるとおり

SELECT * FROM 顧客テーブル
WHERE NOT EXISTS (SELECT TOP 1 FROM 売上テーブル WHERE 顧客ID=顧客テーブル.顧客ID)

のほうが速そうだな
0707NAME IS NULL
垢版 |
2018/02/16(金) 12:21:10.95ID:???
速いとか遅いとか気にしたいんならDBが適切にメンテされているかを考えるべきやな
SQLの表記のゆれなど考えるだけ無意味
0708NAME IS NULL
垢版 |
2018/02/16(金) 15:52:24.98ID:???
NOT INの場合はパフォーマンス以前に
顧客IDがNOT NULLじゃないと意図した結果が得られない可能性がある

NOT NULLなら意図した結果が得られるけど、速度はDBの最適化に依存
INの最適化レベルが高いDBならNOT EXISTSと同程度の速度に場合もある
でもそうならない場合もあるからこういうケースでは基本使わない
0710NAME IS NULL
垢版 |
2018/02/16(金) 20:39:05.84ID:yNJxj2Lb
>>700
環境、データ、インデックスとかによって違うからお前さんみたいに
テストした環境でLEFT JOINが速いからLEFT JOINにしてしまう奴が一番ヤバイ
0711NAME IS NULL
垢版 |
2018/02/16(金) 20:59:00.37ID:???
>>710
うまい返ししたつもりなんだろうけどアホ晒してるだけやぞww
0712NAME IS NULL
垢版 |
2018/02/16(金) 21:08:47.07ID:yNJxj2Lb
>>711
普通に答えただけだけどうまかったか?w
マジかwセンスあんな俺www
0713NAME IS NULL
垢版 |
2018/02/16(金) 21:32:20.04ID:???
誰か試してみてよ
0714NAME IS NULL
垢版 |
2018/02/16(金) 21:53:09.91ID:???
単純なnot inならouter joinと同じ実行計画吐いたきがする
0715NAME IS NULL
垢版 |
2018/02/16(金) 22:16:06.50ID:yNJxj2Lb
>>714
だからたまたまその時その環境でそういう実行プランが作られたという経験を
後生大事に今生の知識として胸にしまいこんでも無駄だと言っておろうが

SQLはいつだってよりシンプルにより直接的にやりたい事を表現してる様に書くべきなんや
0716NAME IS NULL
垢版 |
2018/02/16(金) 23:37:28.84ID:???
>>712
誰もうまい返しとは言ってないぞ
日本語の理解力もないとな w
0717NAME IS NULL
垢版 |
2018/02/17(土) 00:10:23.40ID:RRaJ3TQN
>>716
は?こっちこそお前がうまい返しと言ったとは言っとらんが???
異次元の理解力だなお前…
というかアスペだなwww
0718NAME IS NULL
垢版 |
2018/02/17(土) 00:12:55.27ID:???
ここもID強制表示にしてほしいな
0719NAME IS NULL
垢版 |
2018/02/17(土) 00:21:22.92ID:???
>>717
> というかアスペだなwww
自己紹介乙w
0720NAME IS NULL
垢版 |
2018/02/17(土) 15:34:21.57ID:lIYg2W3z
5chはROM専みたいな筆不精は、長文が書かれていると、時間をかけて書いていると思い込む。

世の中、超速で読み書きができる人間がいるのだよ。
0723NAME IS NULL
垢版 |
2018/02/18(日) 01:31:05.23ID:JhkmGsBQ
>>721
オリジナルです
0724NAME IS NULL
垢版 |
2018/02/18(日) 01:32:48.22ID:JhkmGsBQ
仕事でやってるなら仕事が異常に速いひとを知ってるはずだけどな。並の人間の20倍、30倍くらい仕事が速い人もいる。
0725NAME IS NULL
垢版 |
2018/02/19(月) 05:02:12.33ID:???
1.5人月で見積もられた仕事を1日で片付ける人か。
さすがにそれは見たことないわw
0726NAME IS NULL
垢版 |
2018/02/19(月) 12:21:33.79ID:???
めちゃくちゃキーボード打つの速そう
0727NAME IS NULL
垢版 |
2018/02/19(月) 19:22:31.89ID:???
30人にやらせれば余裕で1日で終わるというのに
0728NAME IS NULL
垢版 |
2018/02/19(月) 19:45:21.08ID:???
>>726
そんな思考だから仕事遅いんだよ
できる人できない人の違いすら理解できてない
0729NAME IS NULL
垢版 |
2018/02/19(月) 20:26:20.69ID:???
だな
キーボード打つ速度とかマジ関係ない
0730NAME IS NULL
垢版 |
2018/02/19(月) 20:33:52.86ID:md3NX5hc
仮に1.5人月のコードを5000行とすると
1日でそれ書いて、さらに仕様書とかも書いてテストもするんやで?
めちゃくちゃ打つの速いやん
0731NAME IS NULL
垢版 |
2018/02/19(月) 20:40:21.60ID:???
今どき行数で考えるなよ
0732NAME IS NULL
垢版 |
2018/02/19(月) 20:55:39.42ID:md3NX5hc
>>731
何で考えても書く行数は変わらんのだけどw
0733NAME IS NULL
垢版 |
2018/02/19(月) 21:14:39.42ID:???
無能な働き者の手による大量の無駄なコードは有能な怠け者の手による洗練された短いコードに劣る
0734NAME IS NULL
垢版 |
2018/02/19(月) 22:24:25.26ID:md3NX5hc
な?具体的に数字だされると速いやろw
0735NAME IS NULL
垢版 |
2018/02/19(月) 23:38:27.02ID:???
>>732
724が言ってるような並の人間より仕事が20倍30倍速いやつってのは
並の人間が5000行書かないと実現出来ない処理を200行程度書くだけで実現したりできるわけ
キーボードだってできるだけ打たなくていい方法を考える

見積もり時に書く行数がほぼ固定されてるような仕事してるなら
できるだけそこから早く抜け出すことだな
0736NAME IS NULL
垢版 |
2018/02/20(火) 07:11:59.70ID:D0Bn3/BK
>>735
それコードが圧縮されとるだけやんwコードゴルフかw
コードは20倍圧縮されても作業にかかる時間は速くなっとらんでそれwww
0737NAME IS NULL
垢版 |
2018/02/20(火) 07:20:13.02ID:???
典型的な無能の発想だな
0738NAME IS NULL
垢版 |
2018/02/20(火) 08:05:15.51ID:oDlAdTII
お前らはどうしてスキルないくせに突飛な主張してマウントとりたがるんや?
俺は笑えるからこうして楽しんどるけど一般的にはみっともないだけやでw
0739NAME IS NULL
垢版 |
2018/02/20(火) 14:51:54.91ID:???
どれだけ優秀な人間だろうと、1.5人月で見積もった仕事を1日で片付けたらな
そもそもの見積もりがぼったくりすぎるだけだな
0740NAME IS NULL
垢版 |
2018/02/20(火) 17:42:37.73ID:???
>>736
コードを圧縮て
斜め上の発想だね
0741NAME IS NULL
垢版 |
2018/02/20(火) 17:49:18.93ID:???
メタプログラミングやコードジェネレーションを考えればいいと思うよ
できるやつは無駄を省いて機械に仕事をさせる
Paul GrahamのLispの話と同じ
0742NAME IS NULL
垢版 |
2018/03/03(土) 09:21:09.95ID:???
新進気鋭の「グラフデータベース」って用途が思いつかないな
0743NAME IS NULL
垢版 |
2018/03/03(土) 16:40:26.84ID:???
RDBはグラフと相性悪いからな
用途が思いつかないうちは使う必要ない
0744NAME IS NULL
垢版 |
2018/03/03(土) 19:29:07.99ID:???
ビッグデータ()とかバズりたい奴向けやろ
0745NAME IS NULL
垢版 |
2018/03/03(土) 21:51:50.18ID:???
一昔前の技術で言えば多次元DBと同じようなもん
RDBみたいにあらゆる所で使われる技術ではない
0746NAME IS NULL
垢版 |
2018/03/03(土) 21:52:38.80ID:???
グラフデータベース=ビッグデータ()
とか言ってると恥ずかしいよ
0747NAME IS NULL
垢版 |
2018/03/04(日) 01:22:04.38ID:elOR/YZE
何年前の話題やねんw
0748NAME IS NULL
垢版 |
2018/03/06(火) 20:30:45.91ID:Y3UcuCKK
間違えて全データ消してしまったんですが
ldf/mdfファイルから消す直前のデータに戻す方法ってありますか?
0749NAME IS NULL
垢版 |
2018/03/06(火) 22:48:19.99ID:???
バックアップあるなら戻せばいいじゃん?
リカバリモデルにもよるけど
0750NAME IS NULL
垢版 |
2018/03/07(水) 00:02:46.51ID:/Gdd1MyZ
bakファイルがなくてldf/mdfファイルだけの状態です
0752NAME IS NULL
垢版 |
2018/03/13(火) 12:58:28.97ID:jwO7/+7T
2017 Expressへ32bit windows7接続出来ますか?
0754NAME IS NULL
垢版 |
2018/03/14(水) 07:45:47.09ID:znnrpK8K
ありがとうございました。
WINDOWS認証ですが18456エラーが出ます、あとLOGを見ると明示的に指定されたデータベースを開けませんでした。
とあります、何が悪いのでしょうか?
今までは2005 EXPRESSでした。
0755NAME IS NULL
垢版 |
2018/03/14(水) 13:40:26.89ID:???
何時のVerからかは忘れたが、今はマシン名\インスタンス名の形式で指定してやらんと繋がらない
例えばlocalhost\SQLEXPRESS
0756NAME IS NULL
垢版 |
2018/03/14(水) 15:02:13.68ID:znnrpK8K
>>755そうですか?試してみます、ありがとうございました。
0757NAME IS NULL
垢版 |
2018/03/14(水) 19:11:25.05ID:???
>>754
そのエラーコード以外に状態コードが出てるでしょ
それ込みでググればだいたい原因分かるよ

Error: 18456, Severity: 14, State: 38. <―このStateの部分

メッセージから推測するとPermissionに問題ないなら
そのログインに指定されてるDefault Databaseがないんじゃないのかな?
存在するデータベースを指定してみれば切り分けできる
0758NAME IS NULL
垢版 |
2018/03/23(金) 16:35:09.86ID:???
SQL Server 2017 Express の localdb のみをインストールし、コマンドプロンプトから
sqllocaldb start MSSQLLocalDB
として開始しようとすると、
「プロシージャ エントリ ポイント BCryptKeyDerivation がダイナミック リンク ライブラリ bcrypt.dll から見つかりませんでした。」
と出て失敗します。
対処方法はありますか? Windows7 64bit です。
SQLServer2017構成マネージャーにも何も出てこないし、
SQL Server Management Studio で (localdb)\MSSQLLocalDB としても接続できず困っています。
0760NAME IS NULL
垢版 |
2018/03/23(金) 21:28:54.62ID:???
>>759 ありがとうございます。

bcrypt.dll ファイル自体は system32 と SysWOW64 のどちらのフォルダにも存在しています。
SQL Server 2017 Express は、そもそも Windows7 はサポート外で、ただし localdb だけならいける、と
いうことなのでやってみたけど、やっぱダメなのか・・
SQL Server Management Studio をちょっと勉強したかったのだが。
0761NAME IS NULL
垢版 |
2018/03/24(土) 10:11:24.87ID:???
>>760
「ただしlocaldbだけなら〜」はどこからの情報なのか
0762NAME IS NULL
垢版 |
2018/03/24(土) 14:01:15.39ID:???
>>761
これです→ http://diy-kagu.hatenablog.com/entry/2017/08/09/155801
記事は2016だけど、2017でも大丈夫だろうと。
自分の環境特有の理由かもしれない。
もう少しやってみてダメなら 2017 をアンインストールして 2016 で再度やってみる。
SQLの勉強でなくて、SQL Server Management Studio を勉強したい。
0764NAME IS NULL
垢版 |
2018/03/26(月) 10:12:43.42ID:???
>>763 ありがとうございます。
2017バージョンの localDB と SSMS をアンインストール後、
2014バージョンの localDB と SSMS を入れ、SSMS から接続までできました。
これで SSMS の勉強ができます。
0765NAME IS NULL
垢版 |
2018/03/27(火) 21:04:57.51ID:???
SQL Server 2016 expressで特定のテーブルのアクセスが異常に遅いのですが、何か原因はありますか?

特定のテーブルの情報
・データ50万件 (select count(*)だけで10秒かかる)
・頻繁にインサートしている
・主キーを設定していない

プログラムでDBに接続側がタイムアウトになるくらい何かが起きているようです。
0766NAME IS NULL
垢版 |
2018/03/28(水) 13:15:59.84ID:???
そら主キーなかったら遅いだろ
0767NAME IS NULL
垢版 |
2018/04/17(火) 14:13:45.26ID:???
sp_who2 をすると、サーバーに繋ぎに来てるコンピュータ名やプログラム名が見れますが
ドメインユーザー名を取得することできませんか。

SQL認証で、ユーザー/パスを全員共通にしてあるんですけど
各接続SPIDに対するドメインユーザー名が判別できるとありがたいんですが。

Windows認証だったら判別つくのですが、プログラムはSQL認証で使いたいです。
(ユーザーがもし SSMS で繋ぎにきたときにテーブル全開示になっちゃうのを防ぐため)
0769NAME IS NULL
垢版 |
2018/04/19(木) 12:38:19.26ID:???
>>765
俺、そのケースで散々パフォーマンスチューニングだのインデックス再構築だの設計変更だのしてたが、
最終的なオチはExpressのデータファイルの10GB制限に引っかかっててインデックス検索で1MB単位で容量の削除、自動拡張を繰り返してた、
というケースがあった。
今でも当時のことを思い出すと赤面するぐらい恥ずかしい思い出。
0770NAME IS NULL
垢版 |
2018/04/19(木) 23:59:08.45ID:???
自動拡張はともかく、容量の削除ってなんだ?
0771NAME IS NULL
垢版 |
2018/04/20(金) 00:29:36.06ID:???
>>770
インサートで限界を突破して自動拡張が停止
→ロールバックされて容量が元に戻る
→ギリギリ容量が残ってるので自動拡張が…
以下、タイムアウトするまで(あるいは何とか入りきるまで)延々繰り返し

みたいな(ちょっと詳細省いたけど
0772NAME IS NULL
垢版 |
2018/04/21(土) 11:37:33.55ID:???
自動拡張されたデータファイルのサイズはロールバックしても自動的に縮小されたりしなかったと思うんがだが
自動拡張に出来なくて空きがないならエラーで帰ってくるから、タイムアウトまで延々待たされるなんて事も無かったと思うけど
0774NAME IS NULL
垢版 |
2018/05/03(木) 17:13:22.69ID:???
SQL Server の参考書でいいやつってどれ?
SQL の文法解説じゃなくて、SQL Server 独特の文化とか、SSMS の操作法とか、そのあたりを学びたい。
0775NAME IS NULL
垢版 |
2018/05/03(木) 18:24:13.53ID:aGiZKSfN
>>774
公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より
0776NAME IS NULL
垢版 |
2018/05/03(木) 18:25:55.90ID:aGiZKSfN
>>774
公式DLの自習書シリーズが最強だと思う
ボリュームが多いが参考書臭さがなく実務より
0777NAME IS NULL
垢版 |
2018/05/03(木) 19:44:18.01ID:03ggByZ2
>>774
あまりない。そこがSQL Serverの厳しいところ。
0778NAME IS NULL
垢版 |
2018/05/03(木) 22:41:41.95ID:???
>>775 おお! 無料でこんなのあるんだ、ありがとう!
>>777 オラクルよりもマイナーなのかな?
0779NAME IS NULL
垢版 |
2018/05/03(木) 23:43:56.18ID:brE82I5/
>>778
自習書は日本マイクロソフトが日本の会社に作らせたもの。

ただし手抜きや説明の偏り、一部は間違っているが、日本マイクロソフトのサポートの方もこれを参考にしている。

マイクロソフトはどの製品も作りっぱなしでマニュアルは自動翻訳のよくわからないものばかり。

Management StudioについてはどのRDBMSより経験がなくても直感的にわかりやすい。
0780NAME IS NULL
垢版 |
2018/05/04(金) 01:38:57.38ID:l3Y7dHLE
>>774
SQL Server 2005、2008以降は大きく変わっていないから、特に翔泳社の本は役に立つよ。

最近のSQL Server本は本当に役に立たない。特にマイクロソフト公式本はひどい。

秀和システムの赤い本もひどい。
0782NAME IS NULL
垢版 |
2018/05/04(金) 09:42:04.84ID:l3Y7dHLE
>>781
0783NAME IS NULL
垢版 |
2018/05/04(金) 10:54:05.67ID:???
>>782
>マイクロソフトはどの製品も作りっぱなしでマニュアルは自動翻訳のよくわからないものばかり。
0784NAME IS NULL
垢版 |
2018/05/04(金) 13:58:18.36ID:l3Y7dHLE
>>783
マイクロソフトのサイトを見たことがないの?
0785NAME IS NULL
垢版 |
2018/05/04(金) 14:04:11.53ID:???
>>784
ごめんね自動翻訳なんて見ないんだ
0787NAME IS NULL
垢版 |
2018/05/04(金) 15:59:47.61ID:???
M$日本の公式ドキュメントは「これは自動翻訳で生成されました」だらけなんだが
>>785はggrもしないらしい
0788NAME IS NULL
垢版 |
2018/05/04(金) 16:06:01.60ID:???
>>787
英語のドキュメント読むに決まってんだろ何言ってんの?
0789NAME IS NULL
垢版 |
2018/05/04(金) 16:12:20.05ID:???
>>787
ググった結果英語のドキュメントが出てこない世界に住んでるんだねすごいね
0790NAME IS NULL
垢版 |
2018/05/04(金) 20:10:03.98ID:???
789の世界のgoogleは日本語の結果のみ表示ができないらしい
0791NAME IS NULL
垢版 |
2018/05/04(金) 22:23:50.48ID:l3Y7dHLE
その英語もひどいから意味がない。
0793NAME IS NULL
垢版 |
2018/05/05(土) 17:00:07.44ID:T1SL703t
>>792
ユーザーにわからせようとはしてない。外国人は基本的に不親切だから、この説明でわからない方が悪いというスタンス。
0795NAME IS NULL
垢版 |
2018/05/10(木) 20:41:14.88ID:7P381X6c
自動拡張されたデータを削除してもファイルサイズが大きいままなのですがどうすればサイズを小さくできますか?
0796NAME IS NULL
垢版 |
2018/05/10(木) 20:48:55.39ID:???
まずバックアップします
0798NAME IS NULL
垢版 |
2018/05/12(土) 00:44:55.12ID:hux6qi0J
>>795ですがみなさん方法をご存知ないですか?
それとも削除した後からでは小さく出来ませんか?
0799NAME IS NULL
垢版 |
2018/05/12(土) 07:22:09.07ID:???
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/
0800NAME IS NULL
垢版 |
2018/05/13(日) 00:56:54.94ID:S1zmRzPe
最新のManagement studioが64bit OSしか
サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
Linuxのサポートよりよっぽど大事だろう?
0801NAME IS NULL
垢版 |
2018/05/13(日) 01:55:14.27ID:NO/7QD/0
>>800
それSQL Server本体とセットではないManagement Studioではないのか?
0803NAME IS NULL
垢版 |
2018/05/13(日) 08:22:29.07ID:???
>>800
> サポートしてないんだが、いったいマイクロソフトはどういうつもりなんだろう?
32bit OS でグダグダ言うクレーマーの相手はしませんと言う意思表示だろ
0804NAME IS NULL
垢版 |
2018/05/13(日) 10:17:13.68ID:aUXovNI8
今32bitOSって動いてる?
0805NAME IS NULL
垢版 |
2018/05/13(日) 10:31:18.97ID:???
>>804
会社で動いてるよ(Windows 7)
もうすぐ廃棄するけど
0806NAME IS NULL
垢版 |
2018/05/13(日) 13:04:14.54ID:aUXovNI8
>>805
win7にSQLを入れてDBサーバーとして使ってる訳じゃないでしょ?
0807NAME IS NULL
垢版 |
2018/05/13(日) 13:20:15.30ID:???
>>806
Visual Studio 入れてるから LocalDB 入ってるけど?
まあテスト用だけどね
0808NAME IS NULL
垢版 |
2018/05/25(金) 22:14:21.62ID:???
非力なマシンだと、SSMSが重くてつらい
0810NAME IS NULL
垢版 |
2018/05/25(金) 23:21:04.44ID:???
立ち上がりきったらそう遅くねーけどな
立ち上げがVisualStudioより遅せーのはアホかと思うが
0811NAME IS NULL
垢版 |
2018/05/25(金) 23:24:30.32ID:TatbyLnb
たぶん若いやつだと思うが、起動に時間がかかるなら、それを考慮して起動中はべつのことをしてろよw
0812NAME IS NULL
垢版 |
2018/05/25(金) 23:53:50.76ID:Z93MyXqj
ほなシコっとってもええんか?シコるで?
0813NAME IS NULL
垢版 |
2018/05/26(土) 00:43:38.25ID:bRsNkwI2
>>808
起動もだが、実行中のプランを見るヤツとか、
重すぎてまともに動かない。
ロック状況見るヤツも無くなっちゃったし、
糞化がハンパない。
0814NAME IS NULL
垢版 |
2018/05/27(日) 14:40:12.20ID:???
個人でexpress以外使ってる人いる?
0815NAME IS NULL
垢版 |
2018/05/27(日) 15:48:44.54ID:Lqhm87aC
>>814
個人ってどーいう事?
そんな奴おらんだろ?
0816NAME IS NULL
垢版 |
2018/05/27(日) 16:07:16.20ID:8hLmukSL
>>815
まれにいるだろ。
0818NAME IS NULL
垢版 |
2018/05/27(日) 17:42:19.92ID:???
Win10Proで2017Developer使ってるよ
0819NAME IS NULL
垢版 |
2018/05/27(日) 17:57:50.42ID:???
ExpressやDeveloperとかの無償版がなきゃ泣く泣くStandard買う奴もいるんだろうけど個人ユースならExpressで充分って言う人がほとんどだろうしなぁ
0820NAME IS NULL
垢版 |
2018/05/29(火) 09:13:12.99ID:???
中小でも社内で完結させられるならExpressで十分だしな。同時接続の人数によるが。
サイズオーバーしてもDB分ければいいし。
0821NAME IS NULL
垢版 |
2018/05/29(火) 12:18:56.63ID:7/O8R114
企業でexpressはほぼほぼライセンス違反とちゃうんか?
知らんけど
0822NAME IS NULL
垢版 |
2018/05/29(火) 13:25:46.38ID:???
expressは商用おkやぞ
ダメなのはDeveloper
0823NAME IS NULL
垢版 |
2018/05/29(火) 16:56:50.03ID:???
クライアントOSでやるとそっちのライセンスに引っかかるけどな
0825NAME IS NULL
垢版 |
2018/05/29(火) 21:20:02.44ID:Ay/YE4Sk
>>823
おまえのせいでアホにアホって言われてもうたわ
どう責任とってくれんねん
0827NAME IS NULL
垢版 |
2018/06/16(土) 13:18:37.96ID:???
bcp って評価はどうなの?
0828NAME IS NULL
垢版 |
2018/06/16(土) 18:31:45.50ID:UP0xR2sD
>>827
未だにダブルクォートとかの囲み文字付きファイルや改行入りが処理できない駄目ツール
(SSISではできるのに)
パフォーマンスはそこそこ。
あなたの評価は?
0829NAME IS NULL
垢版 |
2018/06/16(土) 23:26:28.39ID:???
SQL Server PowerShellってどうなの?
0830NAME IS NULL
垢版 |
2018/06/17(日) 00:38:22.75ID:DF4YrmFv
>>828
SSISも勝手にやられてしまう仕様が多くて使いづらいけどな。
0831NAME IS NULL
垢版 |
2018/06/21(木) 09:34:01.43ID:???
セッションの確認の事で教えてください。

物理的に別々の2つのサーバにそれぞれSQL Sever 2005が入っています。
それぞれの現在のセッション数を調べたく、以下のSQL文を実行するアプリを作りました。

select hostname, count(*) from master..sysprocesses where hostname != '' group by hostname

一方のSQL Serverはうまくセッションを取得できたのですが、もう一方の方は自分のアプリ分のセッションしか見えてきません。
SQL Serverの方の設定とか関係してるのでしょうか?他の方法でもいいのですが、うまくセッションの状態を調べる方法があれば教えてください。

ちなみに接続文字列は以下でアクセスしています。
Data Source=xx;Initial Catalog=DvtReport;Persist Security Info=True;User ID=xx;Password=xx;Pooling=false;
0832NAME IS NULL
垢版 |
2018/06/21(木) 13:35:19.88ID:???
普通に考えて、そのログインの権限が違うんだろ
0833NAME IS NULL
垢版 |
2018/06/21(木) 14:04:47.96ID:???
>>832
ありがとうございました。見えました。
アホな質問ですみませんでした。
0834NAME IS NULL
垢版 |
2018/06/23(土) 15:02:34.02ID:???
一般的に接続の作成、開放はコストが高いと言うけど、この場合のコストって何?
クライアントから見た時間は当然として、サーバー側はどんなコストがかかるの?やっぱりその間の処理が重くなるとかあるのかな?
0835NAME IS NULL
垢版 |
2018/06/23(土) 15:16:13.35ID:tpSzsfc7
>>834
0836NAME IS NULL
垢版 |
2018/06/23(土) 17:02:33.78ID:???
コスト=負荷と思っとけ
接続口を作るのはOSとやり取りするからけっこう大変な処理
0837NAME IS NULL
垢版 |
2018/06/23(土) 21:08:58.69ID:???
>>834
サーバはリソース(CPUとメモリ)
クライアントは時間
0838NAME IS NULL
垢版 |
2018/06/23(土) 21:40:32.04ID:???
>>836 >>837
例えば常時だいたい100くらいセッションがプールされてるとして、新たに100のクライアントが増える場合、サーバーにとって100プールが増えるのと増加100分は毎回接続、開放してもらうのと、どっちがいいかな?
0839NAME IS NULL
垢版 |
2018/06/23(土) 22:29:07.38ID:???
そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが
0840NAME IS NULL
垢版 |
2018/06/23(土) 22:30:11.62ID:???
そもそもサーバは接続プールとかしてるのかね
プールしてるならなおさら、クライアントは毎回解放してもらわんとプールが有効に使えないわけだが
0841NAME IS NULL
垢版 |
2018/06/23(土) 22:46:40.47ID:???
>>838
プールはクライアント側の実装だからサーバにとっては単に長時間の接続でしかない
サーバが許容する上限を超えるまではプールしたほうが良いことが多いが、
限界をこえるようなら毎回接続開放するしかない
クライアントの数が多いとか、接続毎のクエリ発行頻度が低い場合は
プールせずにこまめに切断したほうが良いこともある
0842NAME IS NULL
垢版 |
2018/06/24(日) 10:15:42.74ID:???
SSMS の軽量版、簡易版を出してほしい。
DB管理者向け機能を省略し、一般ユーザ向けのバージョン。
0843NAME IS NULL
垢版 |
2018/06/24(日) 10:24:36.26ID:???
SSMS に一般ユーザーが使う機能なんてあるか?
0844NAME IS NULL
垢版 |
2018/06/24(日) 13:04:29.63ID:???
え?SSMSって一般ユーザがSQL投げて問合せするツールじゃないの?
0845NAME IS NULL
垢版 |
2018/06/24(日) 13:31:19.84ID:???
テーブル間にリレーション定義してあって着目セルがリンク対象だったとき
右クリとかでリンク先の該当テーブル表示、みたいなところまでやってもらいたいところだ
0846NAME IS NULL
垢版 |
2018/06/24(日) 13:51:04.78ID:???
リレーションシップなんて飾りです 偉い人にはそれがわからんのですよ
0847NAME IS NULL
垢版 |
2018/06/24(日) 13:54:29.71ID:???
SQL投げてる時点で一般ユーザーじゃねーだろ
0849NAME IS NULL
垢版 |
2018/06/24(日) 17:14:17.60ID:???
SQL分からんようなやつに直接触らせるDBはねーよ
0850NAME IS NULL
垢版 |
2018/06/24(日) 17:16:02.63ID:???
おまえに食わせるSQLはねぇ!
0851NAME IS NULL
垢版 |
2018/06/24(日) 19:11:03.77ID:???
ssmsの悪い所は
オブジェクトエクスプローラがテーブルやプロシージャ含めて全てツリー表示している所だな
増えてくるとスクロールが大変。
それからテーブルやビューを見るとき次々タブが増えてどれ修正していたのかわからなくなる

SIオブジェクトプラザという有料のツールだとそこら変うまく出来てる
データベースをまたぐ依存関係もわかる
だけど高いのと時々固まるのでおすすめできない
0852NAME IS NULL
垢版 |
2018/06/24(日) 19:40:37.73ID:???
>>851
>次々タブが増えて

JaneStyleみたいにタブが横方向に表示しきれなくなるたびに縦方向に1段増やすようにして欲しいね
0853NAME IS NULL
垢版 |
2018/06/24(日) 23:23:46.74ID:???
昔はエンドユーザーがSQLを投げていた。あな恐ろしや
0854NAME IS NULL
垢版 |
2018/06/30(土) 10:49:48.52ID:???
bcp はデータのインポート、エクスポートが主目的。
sqlcmd は SSMS の簡易なCUI版アプリケーション。オラクルでいうところの sqlplus。

っていう位置づけでよろしいか。
0855NAME IS NULL
垢版 |
2018/07/01(日) 13:16:46.05ID:iOtlwpag
>>854
bcpはOracle Databaseで言えばSQL*Loaderにあたるもの。
0856NAME IS NULL
垢版 |
2018/07/04(水) 22:27:52.09ID:???
最近は、mssql-cli というのもあるね
0857NAME IS NULL
垢版 |
2018/07/08(日) 22:24:33.92ID:???
>>854
どっちも不便だからsqlps使うといいよ
0858NAME IS NULL
垢版 |
2018/07/11(水) 01:23:22.13ID:???
>>853
select権限だけなんだから好きにしろって話だろw
0859NAME IS NULL
垢版 |
2018/07/12(木) 12:54:12.43ID:/YTA8M6s
【上流きどり、都民″】 マ7トLーヤ『大洪水は都会人の弱者切捨ての結果、大地震は核爆発の結果』
http://rosie.5ch.net/test/read.cgi/liveplus/1531363082/l50


豪雨のどさくさにカジノ法案強行、火事場泥棒!
0860NAME IS NULL
垢版 |
2018/07/12(木) 21:34:55.74ID:RO0MxO/p
一日に数件のレコード(数百文字くらい)が新規に追加されるDBなのだが、
追加されたタイミングで自分宛てに通知メールを送ったり出来ますか?
メール本文には追加されたテキストデータが有れば尚良し。
0861NAME IS NULL
垢版 |
2018/07/13(金) 19:38:57.79ID:???
前のSQL Mail 今はデータベースメールって言うらしい でメール送信はできる

トリガー仕込んでやればできるんじゃね
0862NAME IS NULL
垢版 |
2018/07/14(土) 00:07:50.29ID:aYAJ4wRd
>>861
ありがとござんした。
0863NAME IS NULL
垢版 |
2018/07/20(金) 18:14:47.36ID:???
プロシージャでSELECTの結果を返してるんですが、INFORMATION_SCHEMAなどで、何個のSELECT結果を返してるかを、調べる方法はありませんか?
やっぱり、実行しないと厳しいですかね
0864NAME IS NULL
垢版 |
2018/07/21(土) 13:29:57.03ID:???
何個のSELECT結果ってどういうことだ
0865NAME IS NULL
垢版 |
2018/07/21(土) 14:37:14.53ID:???
プロシージャ内で
select * from table1
select * from table2
と書くと2つのSELECT結果が返ってくると思うんですが、いくつのSELECT結果が返ってくるかが知りたいです。
この場合、2つです。
ちなみに、.netを使ってます
0866NAME IS NULL
垢版 |
2018/07/21(土) 16:44:00.45ID:???
はっきりいって、それを知る意味がわからん。
0867NAME IS NULL
垢版 |
2018/07/21(土) 17:10:38.16ID:???
プロシジャってのが何を指してるかわからんが
そのSQLが静的なら、そのSQL見ればわかるし
動的に生成してるなら、動的に生成するロジックでわかるとおもうが
0868NAME IS NULL
垢版 |
2018/07/21(土) 17:17:54.97ID:???
複数 レコードセット
でググれ
0869NAME IS NULL
垢版 |
2018/07/21(土) 17:26:51.48ID:???
「俺が必要な機能が用意されてないのはおかしい」って思ってる奴が定期的に湧いてくる不思議
0870NAME IS NULL
垢版 |
2018/07/21(土) 18:39:30.83ID:OaX/dGdR
>>865
やってみればとりあえず分かるだろうに。
0871NAME IS NULL
垢版 |
2018/07/21(土) 19:12:18.09ID:???
Oracleだと、パラメータのRefcursorの数でわかるんですが、SqlServerでは分からないんですね
0872NAME IS NULL
垢版 |
2018/07/21(土) 19:35:43.12ID:???
>>871
パラメタで返すならパラメタ見れば同じようにわかるけど?

結果セットで複数返したときならクライアント側ライブラリの話だが
ADO.NETのスレってなかったっけ?
ざっと見た感じではNextResultで自分で数えないとダメっぽいなぁ
0873NAME IS NULL
垢版 |
2018/07/21(土) 20:42:46.11ID:???
>>872
SqlServerにはCursorの引数ないから、実際に実行するしかなさそうですね
ありがとうございました。
0874NAME IS NULL
垢版 |
2018/07/22(日) 00:56:34.48ID:???
いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか

つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが
0875NAME IS NULL
垢版 |
2018/07/22(日) 01:03:32.64ID:???
いやSQL Sevrerでもカーソル引数にできたはずだが、と思って調べたが
できるけど、T-SQLからしか呼べないのか

つか引数で指定するってことは、ストアド作成時に数は決まってるわけだが
0876NAME IS NULL
垢版 |
2018/07/25(水) 10:18:39.05ID:dCc9syc1
OS:Windows server 2008R2
DB:SQL server 2008R2

で動くアプリケーションソフトがあります。

これを、以下の環境にDBを移行しました。

OS:Windows server 2012R2
DB:SQL server 2016

CPU、メモリ数、HDDなどハードウェアの条件は全く同一なのに、
アプリケーションからのデータの閲覧、検索、修正、上書き
などの動きが見違えるほど速くなりました。

SQL server のバージョンが新しくなった効果でしょうか?
0877NAME IS NULL
垢版 |
2018/07/25(水) 10:41:42.64ID:???
HDD同じって、同じ規格で同じスピードのまったく同一の型番のディスクだよな

逆に今のスピードが本来の性能で、古いほうが遅くなってたと考える方が妥当じゃね
0879NAME IS NULL
垢版 |
2018/07/25(水) 10:58:23.73ID:dCc9syc1
>>877
ハードディスクは全く同じ型番です

現行システムが動いているサーバと全く同じ機種(スペック)のサーバが
存在していて、今回移行テストに使用しています
ハードウェアの条件が同じで、動きがこんなにも違うので、SQL serverが
劇的に改善されているのかなと思いまして
0880NAME IS NULL
垢版 |
2018/07/25(水) 19:53:09.80ID:???
移行元と先のデータ件数は同じなの?
件数が同等であれば、
物理ファイルの断片化の解消
インデックスおよび統計の更新
等が考えられる。
0881NAME IS NULL
垢版 |
2018/07/25(水) 20:04:51.15ID:???
どうせインデックスがぐちゃぐちゃになっていたという落ちだろ
インデックスの再構成とかしていたのかだな
0882NAME IS NULL
垢版 |
2018/07/25(水) 22:13:41.70ID:dCc9syc1
>>880
データ件数は全く同じです
SQL server 2008R2のデータベース完全バックアップを取って、
SQL server 2016に復元し、アプリケーションの接続先データベースを
2016にしただけで動きが速くなりました

>>881
インデックスの再構成、再構築はメンテナンスプランで毎日実行して
いましたが、統計の更新は毎日行う必要ないと開発部から聞いていたので
月1回程度行ってました
0883NAME IS NULL
垢版 |
2018/07/25(水) 23:43:20.55ID:???
2008と2016だと、エディション同じならそう大きな速度差は出ない気がするけどなぁ
そもそものデータファイルがフラグメントしてたとかじゃないのか
ま、早くなったんならよかったんじゃね
0884NAME IS NULL
垢版 |
2018/07/26(木) 06:15:55.29ID:???
>>882
2008R2のデータベース完全バックアップを、
2008R2にそのまま復元すれば早くなる可能性大だな
0885NAME IS NULL
垢版 |
2018/07/26(木) 11:24:28.64ID:???
クエリプランが変わったから速くなったと仮定すると、基数推定のバージョンが変わったことによる可能性もある
検証する余裕があるなら2016のほうにトレースフラグ9481セットして再起動して、旧バージョンで動かしてみるのもありかと
0886NAME IS NULL
垢版 |
2018/07/26(木) 12:26:11.40ID:???
2008R2ではメモリー制限設定してたのに2016ではディフォルトで使ってるとか
まあ2008R2で調査する気ないんなら
ラッキー、持ってる俺は違うな
とでも思ってりゃいい
0887NAME IS NULL
垢版 |
2018/07/26(木) 12:48:46.96ID:???
あるいはmaxdop指定してるとかね
テスト用だとその辺デフォルトでやっちゃいかねないからな
で、いざ本番用にとちゃんと設定したらテストの時のパフォがでないっていう
0888NAME IS NULL
垢版 |
2018/07/26(木) 12:53:31.13ID:???
maxdopで思い出したけど2016ってたしかデフォルト0じゃなくてインストール時にインストーラが設定するんだっけ
あとtempdbも数指定できたよな
0889NAME IS NULL
垢版 |
2018/07/27(金) 00:55:38.36ID:???
以下のFunctionを作成し
create function dbo.fncA
returns varchar2
as
begin
return 'asdf'
end

以下のsqlで呼ぶと、結果がaとしか返って来ないんですが、asdfと返すにはどうしたら良いでしょうか?
select dbo.fncA()
0890NAME IS NULL
垢版 |
2018/07/27(金) 04:23:27.78ID:???
SQL Serverにvarchar2なんてないだろ
自分でvarchar (1)とかで定義してるんじゃないのか
0891NAME IS NULL
垢版 |
2018/07/27(金) 07:33:42.56ID:???
>>889
戻り値に桁数していしないからじゃないかな
0892NAME IS NULL
垢版 |
2018/07/27(金) 08:27:59.57ID:???
俺も桁数しなきゃ
0893NAME IS NULL
垢版 |
2018/07/27(金) 15:53:18.16ID:???
SELECT
M.ID
,(SELECT A FROM テーブル値関数(M.ID, M.DATE)) AS A
,(SELECT B FROM テーブル値関数(M.ID, M.DATE)) AS B
,(略)
FROM M
WHERE (略)

こういう風にテーブル値関数を使うと、テーブルM・1行当たり 2回 動いてしまうと思います。
構造体かTUPLE型か、そういう風な概念を使って、効率的に動かす手段はないでしょうか?
0894NAME IS NULL
垢版 |
2018/07/27(金) 19:43:37.80ID:???
その関数が何してるかしらんが、それテーブル値関数の必要ないんじゃね
関数が2行以上返したら実行時エラー吐くんじゃね

実行時の効率もとめるなら関数じゃなくてビューにしてJOINしろよ
テーブル値関数とでもJOINはできるはずだけどな
0895NAME IS NULL
垢版 |
2018/07/28(土) 13:20:30.52ID:tm98Iqt0
>>882
そもそもあんたは設定が同じかどうかも確認せずに比較している。

あなたのいう同じは同じではないと思うよ。
0896NAME IS NULL
垢版 |
2018/08/01(水) 21:41:38.16ID:???
質問なのですが、SQLでファイルの存在まで確認するのは不可能でしょうか?

例えば

SELECT *
FROM T_Anken
WHERE AnkenID = '00123'
AND FileExist('C:\AnkenFile\00123.txt')

みたいなことをしたいんですが、難しいですかね?
0898NAME IS NULL
垢版 |
2018/08/02(木) 20:55:49.33ID:???
データベースのバックアップを定期的に取りたい、っていう場合、
.mdf ファイルだけバックアップしておけばOK?
SSMSの機能は使わず、ファイルのバックアップという意味で。

あと、巨大な .ldf ファイルがあるんだけど、これ削除してよい?
0899NAME IS NULL
垢版 |
2018/08/02(木) 22:02:05.14ID:mcP8wWdh
>>898
mdfとldfはセットだ
復旧モデル
BACKUP DATABASE
DBCC SHRINKFILE
とかで検索
0900NAME IS NULL
垢版 |
2018/08/03(金) 00:13:09.11ID:???
復旧モデル単純にすることからだな
そんな質問するとこからしてトランザクションログから復旧する要件なんてなかろう
0901NAME IS NULL
垢版 |
2018/08/03(金) 14:34:29.02ID:???
>>899 サンクス。ldf が2GBあるんだよ、これ消したい。

>>900 そうそう。localDB で自分のPC内で遊びでやってるだけ。
でもPCや 保存先のSSD がダメになった時のことを考えて定期的に外部にバックアップ取りたいのよ。
0902NAME IS NULL
垢版 |
2018/08/03(金) 14:36:16.45ID:???
ログが肥大すんのは復旧モデルが「完全」だからだ「単純」に変えろ
0903NAME IS NULL
垢版 |
2018/08/03(金) 15:46:02.26ID:???
mdfだけでも保証はされないけど一応復旧できるんだっけ?
サービス停止するかデタッチしないとコピーできんかったと思うし、バックアップとるにもDB複製ふるにも普通にバックアップするほうがお手軽だから忘れちゃった
0904NAME IS NULL
垢版 |
2018/08/03(金) 21:40:23.92ID:???
>>903
> サービス停止するかデタッチしないとコピーできんかったと思うし
コピーはできるけど役に立たないデータがコピーされるだけ
0905NAME IS NULL
垢版 |
2018/08/04(土) 03:34:48.90ID:???
「単純」にして毎日夜間バックアップの一週間ローテ(5世代)とかでやってる企業も多いね。
0906NAME IS NULL
垢版 |
2018/08/04(土) 03:53:35.36ID:???
圧縮あるしサイズ小さけりゃ差分とか考えなくていいからな
うちはたまにテストや確認で○時のときのDBを検証環境に作ってって要望がくるから完全にしてる
0907NAME IS NULL
垢版 |
2018/08/04(土) 09:49:44.89ID:???
結論としては、

・エクスプローラ上からのファイルコピー等でのDBバックアップは不可
 (ファイルコピーはできるがDBとして復元できない)

でよいの?
0908NAME IS NULL
垢版 |
2018/08/04(土) 13:14:32.38ID:???
ファイルロックされててコピーも出来ないんじゃ
0909NAME IS NULL
垢版 |
2018/08/04(土) 13:42:01.94ID:???
>>907
デタッチすればファイルコピー出来るし、コピーしたものを他のSQL Server入ったPCで復元(アタッチ)することも出来る
0910NAME IS NULL
垢版 |
2018/08/04(土) 20:08:07.47ID:???
VSS使ってMDF,LDF取得はよくしている
0911NAME IS NULL
垢版 |
2018/08/05(日) 22:49:40.30ID:???
>>907
DB停止状態(コールドバックアップ)なら可能
0912NAME IS NULL
垢版 |
2018/08/07(火) 20:01:05.52ID:L4EDfhvX
リレーショナルデータベースがそんな単純なものだと思っているやつは、Windowsもファイルのコピーで別のハードディスクに移せると思っているんだろうな。
0913NAME IS NULL
垢版 |
2018/08/07(火) 20:12:13.66ID:???
パーソナルユースの場合は単純な方が利点が多い
0914NAME IS NULL
垢版 |
2018/08/07(火) 23:40:21.32ID:???
MSのAccessとか、あと開発とかしたことないけどSQLiteとか、お手軽に使えるのもあるからねえ
そういうのしか知らないとぴんとこないかもな
0916NAME IS NULL
垢版 |
2018/08/08(水) 00:39:43.49ID:???
データベースじゃなくてDBMSって言ってほしいがな
0917NAME IS NULL
垢版 |
2018/08/08(水) 06:18:27.55ID:???
>>914
SQL-Serverだってmdf, ldfをコピーするだけなら大して変わらん
MS-AccessとかSQLiteだって稼働中にコピーしたらガラクタになるのも同じ
0918NAME IS NULL
垢版 |
2018/08/08(水) 06:20:49.10ID:???
>>916
DBMSはどっちかって言うとSQL-Server本体の方
今の話はデータファイルの方だからDBMSはちょっとピントずれてる
0919NAME IS NULL
垢版 |
2018/08/09(木) 10:14:10.09ID:jylyPhQF
>>893
クロスアプライしろ
0920NAME IS NULL
垢版 |
2018/08/11(土) 17:50:53.85ID:hw5PU5RO
>>915
SQLiteとSQL ServerやOracle Databaseを比べるのはおかしい。

自転車とリニアモーターカーが同じだと言っているようなもの。
0921NAME IS NULL
垢版 |
2018/08/11(土) 18:28:42.16ID:???
>>920
>>912が「リレーショナルデータベース」と言っていることに対するツッコミやろアホか
0922NAME IS NULL
垢版 |
2018/08/12(日) 01:17:15.53ID:444bh0X0
>>921
RDBMSとリレーショナルデータベースをわざわざ言い分けるのはよほどの専門家同士の話で、同義ととらえるか、むしろRDBMSでは一般人には意味が伝わらないから避ける。
0923NAME IS NULL
垢版 |
2018/08/12(日) 07:07:04.18ID:HjxXSimm
用語の意味で紛糾する初心者スレ微笑ましいなw
0925NAME IS NULL
垢版 |
2018/08/12(日) 18:42:27.62ID:cfFh3cqu
リレーショナルデータベースにかわりがない。リレーショナルデータベースの定義を知らないのか?
0926NAME IS NULL
垢版 |
2018/08/12(日) 18:43:58.55ID:cfFh3cqu
関係データベースと言わないと調べてもわからないかな?
0927NAME IS NULL
垢版 |
2018/08/12(日) 18:56:05.94ID:???
なんかまたマウント取りに必死な奴が来たな
0928NAME IS NULL
垢版 |
2018/08/12(日) 19:03:57.12ID:???
厳密な定義の話は難しいが、データベースファイルをコピーする話ならDBMSのほうが適切じゃないのか?
なんで稼働中にコピーしたらダメなんって問われたらリレーショナルデータベースの「管理」の話になってくるでしょ
0929NAME IS NULL
垢版 |
2018/08/12(日) 19:46:20.07ID:???
DBMSに限らず内容を書き換えてるファイルをコピーしたら一貫性が保てないのは常識
0930NAME IS NULL
垢版 |
2018/08/12(日) 21:58:36.58ID:???
それはそうなんだけど、それ言い出したらファイルコピーという一点において、>>912の「リレーショナルデータベースがそんな単純なもの〜」という発言が単純なテキストファイルとどう違うのってことになる
いや、データ更新時のデータ保証まで考えるなら君の言ってることは正しいし、そう言いたいならそれでいいけど
0931NAME IS NULL
垢版 |
2018/08/12(日) 22:02:25.40ID:???
>>912がおかしいって言いたいだけ
DBMSって言っても単なるアプリケーションソフトウェアだし
0933NAME IS NULL
垢版 |
2018/08/12(日) 22:44:09.95ID:???
いま話になってるのはその1アプリケーションのデータファイルの話
それをリレーショナルデータベースの話と言うのはあきらかな間違い
0934NAME IS NULL
垢版 |
2018/08/12(日) 22:57:18.60ID:cfFh3cqu
>>931
あなたが思っている製品はそんなものだから、そう思っているんでしょう?

Oracle Databaseをよく知っているなら、あなたのような発言はできない。
0935NAME IS NULL
垢版 |
2018/08/12(日) 22:58:57.47ID:cfFh3cqu
>>930
実際にMySQLはデータファイルがただのファイルだぞ。

Oracle Databaseだったらよほどの知識がないと触ってもいけないどころか、ASM構成だったら触れもしない。
0936NAME IS NULL
垢版 |
2018/08/12(日) 23:01:10.13ID:cfFh3cqu
>>933
誰がそんなことを書いたのか?どこにも見当たらない。SQLiteにデータベース管理システムがないと言い張ったやつがいただけ。

データベース管理システムのない有名な製品なんて俺はオタクではないので知らない。
0937NAME IS NULL
垢版 |
2018/08/12(日) 23:09:42.28ID:cfFh3cqu
かたくななまでに自分の非を認めない人というのがいます。何か責任を問われることが起こっても、誰か人のせいにしたり環境のせいにしたりします。

自分に非があることを素直に認められないのはどうしてなのか、その心理にはこんなことが隠されているようです。

https://tabi-labo.com/213871/not-apologize-ppl
0938NAME IS NULL
垢版 |
2018/08/12(日) 23:13:57.67ID:???
データファイルコピーの話に対して、
リレーショナルデータベースがそんな単純なものだと思っているやつは云々言ってたやつがいたと思ったんだが
0939NAME IS NULL
垢版 |
2018/08/12(日) 23:15:56.53ID:???
>>934
ん?
普通のサーバーで稼働してるOracleなら単なるアプリケーションだし、稼働中に単にコピーしたら整合性は取れんよ
逆に止まってる状態ならデータファイルコピーで普通にバックアップは取れる
オラクル 物理バックアップ
とかでググってみ
0940NAME IS NULL
垢版 |
2018/08/12(日) 23:24:16.55ID:???
>>934>>935
Oracleといってる時点でRDBというよりRDBMSの話だろ、自分でいってて気づかないのか?
0942NAME IS NULL
垢版 |
2018/08/12(日) 23:40:07.12ID:cfFh3cqu
>>940
RDBでRDBMSがないものを挙げてください。きっと答えられませんよね?
0944NAME IS NULL
垢版 |
2018/08/12(日) 23:43:52.06ID:cfFh3cqu
>>939
Oracle Databaseはシャットダウンしていたとしても、そのままデータファイルのコピーだけでは済みません。

無知にもほどがあるでしょうに。

だいたいRDBMSをただのアプリケーションだと言い放つのは、よほどの素人でしょうが。
0945NAME IS NULL
垢版 |
2018/08/12(日) 23:47:08.31ID:cfFh3cqu
リレーショナルデータベースとリレーショナルデータベース管理システムが別個というしつこい主張は何がしたいのか?

SQL Serverの場合、別にインストールするManagement Studioならこういう誤解は理解できる。

しかしManagement Studioはただの管理ツールであって、データベース管理システムそのものではない。
0946NAME IS NULL
垢版 |
2018/08/12(日) 23:50:36.87ID:???
>>945
あたり前だろうが馬鹿かお前は
いうにことかいてManagement Studio出してくるとは思わんかったわ
いいからRDBMSがないRDBあげて
0947NAME IS NULL
垢版 |
2018/08/12(日) 23:54:03.34ID:???
つまりRDBとRDBMSの区別のつかない人が暴れてるだけか
0948NAME IS NULL
垢版 |
2018/08/12(日) 23:57:18.90ID:???
もう一回書くけど、まさかこの話の流れでManagement Studio出てくるとはなあ
ここ数年で仕事に関する話で一番度肝抜かれたかもしれん、完敗だわもう
0949NAME IS NULL
垢版 |
2018/08/13(月) 00:25:35.14ID:???
>>945
機会があるなら、一度サーバーとストレージ全部ぶっ壊れたと想定して外部ディスクやテープにしかないバックアップから全部戻すなんてことやってみればいい
そういうのしてると、勝手さえわかれば所詮そんなものって気付く
0950NAME IS NULL
垢版 |
2018/08/13(月) 02:28:20.30ID:???
>>944
> Oracle Databaseはシャットダウンしていたとしても、そのままデータファイルのコピーだけでは済みません。
わざわざキーワード書いてあるんだからちゃんとググれよ
http://www.atmarkit.co.jp/ait/spv/0606/30/news130.html

> だいたいRDBMSをただのアプリケーションだと言い放つのは、よほどの素人でしょうが。
よくわかってない人はなぜかコンパイラとかDBMSとかを特別なものとして扱いたがる w
Oracleのインストールとかしたことないでしょ?
単に使うだけならOfficeのインストールとたいして変わらんよ
まあAMSとかRACとか言い出したら設定は死ぬほど面倒だけどな
0951NAME IS NULL
垢版 |
2018/08/13(月) 08:48:35.11ID:???
>>937
自己紹介w


毎回、レベルの低いところでマウント取ろうとするから、周りと会話が噛み合わなくなることに早く気づきなよ
0952NAME IS NULL
垢版 |
2018/08/13(月) 15:01:06.64ID:???
RDBMSだからファイルコピーが出来ねえとかガイジか
稼働中はファイルが閉じられとらんのだから出来るわけねえだろアホウが
0953NAME IS NULL
垢版 |
2018/08/13(月) 17:22:13.38ID:???
>>952
お前はファイル共有モードについて勉強してから出直せ
レベル低すぎる
0954NAME IS NULL
垢版 |
2018/08/13(月) 17:35:23.75ID:???
リレーショナルデーターベースって
所定の構造のデーターの集合を保持していて、所定の方法で、データーが保存、変更、削除、参照ができるもので良い?
例えば、所定の構造のデータを保持する、Excel bookと保存、変更、削除、参照の手順書とか
0955NAME IS NULL
垢版 |
2018/08/13(月) 18:10:00.94ID:???
データベースそのものには変更方法等の規定はないし
その特定の構造がリレーショナル形式でなければ「リレーショナル」データベースとは呼べんな
0956NAME IS NULL
垢版 |
2018/08/13(月) 18:23:34.43ID:???
考えたこともなかったけど、SQL Serverのデータファイルでファイル共有モードとかできるの?
あと思ったけどReadOnlyにしたらコピーできるんかね、やってみるか
0957NAME IS NULL
垢版 |
2018/08/13(月) 18:32:01.56ID:???
>>953
おめーはファイルバッファについて勉強しろハゲ
ただでさえDBはログキャッシュ持ってるんだ
書き出されてないデータなんぞごまんとあるわハゲ
0958NAME IS NULL
垢版 |
2018/08/13(月) 18:39:55.80ID:???
>955
Excel表でその様なリレーショナルな構造を作れば、要件を満たしているのですね?
0959NAME IS NULL
垢版 |
2018/08/13(月) 18:58:12.01ID:???
>>957
コピーできない話はもういいのか? w
バッファーとかキャッシュの話はまた別の話な
0960NAME IS NULL
垢版 |
2018/08/13(月) 19:07:33.70ID:???
>>959
で? 不完全なファイルコピーできてそれが何だってんだ?
ちったあ頭使えハゲ
0961NAME IS NULL
垢版 |
2018/08/13(月) 19:14:01.72ID:???
元はなんだっけ?
SSMS使わずにファイルコピーでバックアップしたい→稼動中は無理
って話だっけ?
0962NAME IS NULL
垢版 |
2018/08/13(月) 19:18:56.52ID:???
>>960
そんなもんはとっくに書かれてる → >>904
周回遅れすぎだろ w
0964NAME IS NULL
垢版 |
2018/08/13(月) 19:48:31.25ID:???
俺はRDBMSがないRDBが知りたい
0965NAME IS NULL
垢版 |
2018/08/13(月) 20:33:16.64ID:???
>>964
まあSQLiteみたいなインプロセスな奴だとデータベース管理システムって言うのはちょっと違和感あるかな
0966NAME IS NULL
垢版 |
2018/08/14(火) 14:42:25.12ID:???
RDBMSが備えるべき最低限の機能はって話を決めんとな
コンピュータ上で何らかのプログラム使ってリレーショナルなデータ扱ったとき
そのプログラムは全部RDBMSだろって話になるから

まあ、スレ違いだな
別スレ立ててやってくれ
0967NAME IS NULL
垢版 |
2018/08/14(火) 18:33:08.30ID:???
スレ違いではあるんだが、2年たっても消化できないスレが勢い上位の版でスレたててもなあ
0968NAME IS NULL
垢版 |
2018/08/14(火) 19:40:31.24ID:pybELLFA
Windows Server 2012上で動いているsql serverのテーブルを同じ
Windows Server 2012上で動いているMySQLのテーブルに毎日一回
コピーしたいんですが、一般的なやり方を教えて下さい。
sql serverで何かそう言うジョブを設定するなど可能でしょか?
0969NAME IS NULL
垢版 |
2018/08/14(火) 21:38:01.56ID:???
外部アプリ組んだほうが早くね?
0971NAME IS NULL
垢版 |
2018/08/14(火) 22:05:49.13ID:pybELLFA
>>969
例えばどんなアプリ?
>>970
どんなジョブを書けば良いの?
0972NAME IS NULL
垢版 |
2018/08/14(火) 22:58:48.02ID:f02vD5Is
おまいさんのレベルがわからんからまず自分で考えた方法を書こうぜ
0973NAME IS NULL
垢版 |
2018/08/14(火) 23:02:56.26ID:???
泥臭いがSQLServerからレコード取ってきてMySQLにインサートするアプリってこと
独自列使ってないならダンプでもいけるかもしれん
0974NAME IS NULL
垢版 |
2018/08/14(火) 23:32:49.39ID:???
SQLServerでファイルに吐き出してMySQLで取り込む
昔から使われてて少なくとも一般的なのは確実
同じサーバ上にたててるくらいだからデータ量なんてたかが知れてるだろうし、レコードで処理するよりファイルでやればすぐ終わって差分とか気にする必要もないだろう
0975NAME IS NULL
垢版 |
2018/08/14(火) 23:41:47.39ID:???
MySQLへDBリンク張れないか
0976NAME IS NULL
垢版 |
2018/08/14(火) 23:56:56.71ID:???
MySQL用のプロバイダあるね
これでいけるんじゃないの
0977NAME IS NULL
垢版 |
2018/08/14(火) 23:58:25.98ID:???
>>971
アプリと言うか
MySQLへリンクサーバー設定して
drop table MySQLTable
select ... into MySQLTable …
みたいなSQLを発行するコード書いてタスクスケジューラとかで定期的に起動すればいいかと
0978NAME IS NULL
垢版 |
2018/08/15(水) 06:54:18.99ID:+ZQR96PU
>>977
試してみます。
皆さんありがとうございました。
0979NAME IS NULL
垢版 |
2018/08/15(水) 14:30:53.82ID:???
アプリ作るならSSIS使えばいいんじゃね?
0980NAME IS NULL
垢版 |
2018/08/16(木) 16:36:17.93ID:???
プロシージャの引数で型のサイズを省略したいのですが、何かいい方法はありませんでしょうか?
テーブルの列のサイズとプロシージャの引数のサイズの同期を取るのが煩雑で…
Oracleみたいなテーブルの型を参照出来れば一番いいんですけどね。
0981NAME IS NULL
垢版 |
2018/08/16(木) 17:42:16.07ID:tStV8vZM
>>980
Trunsaction-SQLはかなり古い言語使用なので無理に何かするようになるなら、普通にパラメータとして受けとった方がいい。

TYPEデータベースオブジェクトを作成して、それデータ型をプロシージャに渡せばできるかも知れないが、私はやったことがないので、わからない。
0982NAME IS NULL
垢版 |
2018/08/16(木) 20:24:01.85ID:???
>>980
昔関わってたシステムは列名ごとにユーザー定義データ型を作ってた
ユーザー定義データ型を作る手間はかかるが、コード書くときに列名だけしっとけば桁長意識しなくていい(桁間違いのバグ防ぐため)から
0983NAME IS NULL
垢版 |
2018/08/17(金) 10:12:51.17ID:???
>>981
>>982
ありがとうございます
やっぱり、そういう仕組みは存在しないんですね
全部の引数のサイズに最大の文字数を指定しちゃうのはどうなんでしょうか?
0984NAME IS NULL
垢版 |
2018/08/17(金) 19:24:07.68ID:MmEfgYU6
>>983
文字型ならmaxで良いが、小数点ありの数値型だと最大って何?ってなるな
0986NAME IS NULL
垢版 |
2018/08/17(金) 22:35:56.42ID:MmEfgYU6
>>985
numericで桁数省略すると小数以下が0になるけどいいの?
0987NAME IS NULL
垢版 |
2018/08/17(金) 22:36:41.66ID:???
省略したら規定の桁数になるだけで、そんなことを言ったらvarcharだって省略可能だぜ
0988NAME IS NULL
垢版 |
2018/08/17(金) 23:36:49.22ID:???
>>986
え?そうなんですか!
それはまずいです…
どうしよ…
0989NAME IS NULL
垢版 |
2018/08/18(土) 09:58:35.71ID:U2DosSCL
>>984
文字列型のmaxはLOB型になってしまうのでまったくおすすめできない。
0990NAME IS NULL
垢版 |
2018/08/18(土) 12:30:01.99ID:???
最適解はないんですか?
0992NAME IS NULL
垢版 |
2018/08/18(土) 22:55:52.30ID:e9X2ExZT
>>989
LOB型なんてsqlserver には無いんだけど・・
0993NAME IS NULL
垢版 |
2018/08/19(日) 19:29:10.06ID:???
>>992
LOB=Large OBject
ラージオブジェクト データ型でぐぐりなされ
0995NAME IS NULL
垢版 |
2018/08/19(日) 20:49:48.71ID:???
貼ろうとしたらエラーくらったのよ
前もあったけどシステム的な単語いれると弾かれる
てかぐぐったらJDBCとかが上にヒットするなすまん
データ型のところ見てたら出てくるよ
ただ、ストアドの引数に使って何のデメリットがあるのかは知らん、LOB型がないってあったから書いただけ
0996NAME IS NULL
垢版 |
2018/08/19(日) 20:51:04.65ID:???
次スレたてるよー
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 812日 4時間 28分 2秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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