Microsoft SQL Server 総合スレ 12
Microsoft SQL Server (Transact-SQL) の総合スレッドです。
・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/ そりゃベテランにもアホはいるだろ
たいてい淘汰されるんだけどお前ん所が生き残れる環境だっただけ カラムストアインデックスの検証したけど、単一の表にアクセスするだけのSQLだと劇的な効果出たけど、複数の表を結合した複雑なクエリには無力だった。これって常識? >>103
全部ひとつのテーブルにまとめてしまえばよいw >>105
リレーショナルデータベース完全否定やん 実際縦集計速くするための仕組みだから
そういうテーブル設計が正解でしょ
必要な項目が全て存在する集計用データマート VPSにSQLServerをインストールして、外部接続可能な設定はしました。(パワーシェルでポート指定で疎通確認済み)
また、SQLServer認証も設定済みです。
@@servernameで取得した名前が db1
VPSのアドレスが1.1.1.1
開放したportが1433
だとして、自宅のPCのSSMSからVPS上のdb1に接続するには、サーバー名にはどのような記入をすれば良いのでしょうか? >>110
デフォルトインスタンス(MSSQLSERVER)なら
VPSの外向けグローバルIPだけでOK
VPS側のファイヤーウォールで自宅側ルータのIPに絞っとかないと
アタック受けるから注意しろ >>111
無事、接続出来ました。セキュリティの件もアドバイスありがとうございます。 >>113
ただのインデックス付きビューではたいして変わらないだろう。
SQL Serverはマテリアライズドビューが最新版でもないのかな?
そのときの最新の一貫性のとれたデータが必要でないなら、更新がかからない時間にでもコピーを作っておけばよい。
または目的のSQLを更新がかからない時間に実行して結果を取得しておく。 いったん対象範囲を#テーブルに切り出して、それにインデックス張って・・・ってのは時々やる ツイッターやネットでテクノロジー犯罪と検索して、まじでやばいことを四代目澄田会の幹部がやってる(アメリカではMKウルトラ計画)
被害者に対して暴力団以外にタゲそらしをしてるがやってるのは暴力団で普段外に出ることが少ないため遊びで公共の電波と同じような電波を使って殺人をしてる
統失はほとんどが作られた病気で実際は電波によって音声送信や思考盗聴ができることが最近明らかになりつつある
警察や病院では病気としてマニュアル化されてしまっているのが現状で被害者は泣き寝入りしてる
被害者がリアルタイムで多い現状を知って、被害者間でしか本当の事だと認知できていない
実際にできると思われていない事だから、ただの幻聴ではない実際に頭の中で会話ができる
できないことだと思われているからこそ真面目に被害を訴えてる
海外でも周知されつつあることを知ってほしい。
このままだとどんどん被害が広がる一方
#テクノロジー犯罪
#四代目澄田会
#拡散希望
[参考]
https://black.ap.teacup.com/yamisiougn01/6.html
https://tekunoroji-hanzaihigai.jimdo.com
https://blogs.yahoo.co.jp/patentcom
https://twitter.com/celesty_cs 👀
Rock54: Caution(BBR-MD5:f70dfdc711a7c6ae6accccb939f27fbf)
https://twitter.com/5chan_nel (5ch newer account) not exists句とexcept演算子ってほぼ同じものでしょうか?
どちらかがあればもう片方は無くても特に困らないですかね? >>118
求める結果が同じあればまだいいが、2つはまったくの別物。 「ユーザー定義データ型」ってのがあると思うんですが、
そいつを含んだものを C# 側から ExecuteReader() とかで SELECT 取得したとき
各列のユーザー定義データ型を調べる手段ないでしょうか。
CREATE TYPE [dbo].[JAN13] FROM [char](13) NOT NULL
みたいにして、この列を含んだ行を SELECT したとき
char[13] じゃなくて [dbo].[JAN13] という定義名を得たいのです。 同じバージョン間でバックアップ、復元を行っていますが
何故かバックアップを作成した時点ではなく少し前の状態で復元されてしまいます
フルバックアップしたものと聞いているので最新の状態で復元されるものと考えていますが
バックアップの取り方に問題があるのでしょうか?
ちなみに復元する側はDBを一旦削除してから復元しています 自己解決しました
復元の際にタイムラインでバックアップポイントを最新に指定していなかったことが原因でした
デフォルトで最新になるものだと思い込んでいました SQL Server で SSD 使ってる方おられますか?
書き換え可能回数も随分と伸びたと聞くので、そろそろ大丈夫なのかなぁと。
HDD も併用するんなら、トランザクションだけ HDD に逃がしたほうがいいですかね? >>123
SSDの寿命って突然死するのか?
なんにしてもデータ保護考えたら単一ディスクはあり得んし >>123 は単にSSDを使ってもよいのかどうかという質問なんだろうね。スマートフォンのストレージがHDDでないことに疑問を持たないのかね? スマートフォンはSSDだったのか?
てっきりメモリかと思っていた コンシューマー向けのTLC/QLCを使うなんてことがなければいいんじゃないかとは思うが
3DXpoint高いお… >>125
目的は高速化しかないと思いますが・・・
投資の優先順位は
メモリー>ストレージ>CPU だと思ってます。
メモリーマンタンなので、次はストレージをと データベース丸ごとキャッシュに乗るべきと思って
96GB まで積み増したのですが、最近はストレージへのアクセスが増えてしまったので。 >>133
メモリ上のバッファキャッシュが多ければ、ストレージのIOデータ量も増える。
データ量が大きくなって遅くなっていることをハードウェアでどうにかしようとするのは根本的な解決になっていない。 データ量が増えてメモリを食うようになった⇒ストレージへの I/O が増えた状態への有効な対処法ってどんなのがあるんだろう。
素人な自分としてはこれは本気で知りたい。
まえに環境の検討をやってたときに、 tempdb を SSD 上に置いたことはあった。
結構かなり速かったよ。本番環境でやっていいかどうかは知らないけど。 >>135
まずは無駄な検索とか更新をしてないかとか
インデックスがちゃんと効いてるかの確認
あとは物理的に複数のデバイスに分割してI/O処理を分散する
そのとき各デバイスで片寄らないように配置するキーを上手く選ぶとか データが増え続けても性能問題は起こらないという発想がおかしい。
性能問題が発生してSSDにするというのは、その場しのぎでしかない。 >>136
ああなるほど。
ひとつのストレージの上でなんとかすることしか考えてなかったよ。
参考にします。ありがとう。 DB初心者なんですが、質問させてください。
最初のSQL Serverをインストールし、DB・テーブルの作成、レコードの挿入・更新・削除までやってみました。
次にプログラムからSQL Sv.を操作してみようと思い、C#からレコードやテーブルの操作をしてみました。
ここで気づいたのですが、実運用においてプログラムからDBを操作するケースって、基本的にはレコードの操作くらいでしょうか?
というのも、DB・テーブルの作成はシステムを構築する際には技術者がSSMSなどで行いうと思いますが、
プログラムがやることってシステムが稼働する段階になって、
ユーザーの操作に従ってレコードの挿入・更新・削除くらいかなと思いましたので。
DB技術者の先輩方、よろしくお願いいたします m(__)m >>139
一時テーブルを作るとか普通にあるけど?
てか、一番多いのは検索だと思うぞ >>140
一時的テーブルってどんなケースでしょうか?
自分がイメージしてるのは↓みたいな感じですが、実際こんな感じでしょうか?
例えば商品を扱う時に
◆登録時
商品(+カテゴリ)のレコードを追加、
もしくは既存レコードの数量を更新
◆検索
SELECT 〜 WHERE で商品検索。
表示されたものを並べ替える時に、上記SELECT分に ORDER BY 〜 を追加。 SQL serverをデータベースに使用している業務用アプリを
Windows7+SQL server 2008R2EXPRESSの環境で動かして
いましたが、今回、Windows10+SQL server 2016EXPRESSに
移行したところ、途端にアプリの動きが重くなりました。
いろいろ調べた結果、移行時に、SQL server 2016に2008R2の
データベース完全バックアップを復元した際に互換性レベルを
「2016」にしたことが原因で、これを「2008」に下げるとサクサク
動くようになりました。
そこで質問ですが、SQL server 2016EXPRESSに復元したDBの
互換性レベルを「2008」で動かしても特にリスクはないでしょうか?
そもそも互換性レベルは「2016」で動かす方が望ましいのでしょうか?
よろしくお願い致します >>142
調べたから見たはずだけど、2016を2008互換で動かしていたら、ただの問題の先送り。 >>142
暫定的にはいいけど、そのままだと次のバージョンアップの時に苦労するぞ >>143
>>144
ありがとうございます
さらにテストをしたら、互換性レベル2014までは正常に動きますが、
2016になった途端、動きが極端に重くなることが分かりました
問題の先送りにしかならないにしても、暫定措置としては、
なるべく互換性レベルは高い方がいいでしょうか?
それとも、2016でなければ、2008でも2014でもさほど変わりませんか? >>145
本当に互換性に問題のある使い方をしているのかどうかを調べるのが基本だよ。 >>145
便所の落書きに判断を求めるなよ
正攻法なら最新に合わせて改修するだけだし
コストがかけられないなら確実に動作する状態でリプレースを待つだけだろ そもそもそれホントに互換性レベルの問題なのか?
2016出てだいぶ立つから、メジャーな問題ならもっと話題になってると思うが 実行プランに影響するから>>142の環境だけで発生するとかもあり得る その後、同じ業務用アプリケーションで、以下のような環境移行を行い、
サーバ:Windows server 2008R2→Windows server 2016
SQL server:SQL server 2008R2→SQL server 2017
クライアント:Windows7→Windows10
互換性レベルをSQL server 2017にしたところ、やはり動きが
極端に重く(遅く)なり、互換性レベルをSQL server 2014に
下げると正常なスピードになりました
データベースがSQL server 2014までは互換性レベルなんて
意識したことなかったけど、SQL server 2016以降において
急に引っかかるようになった感じですね >>150
だから製品の何が変わったのかマイクロソフトの情報を見ているのか? どこのSQLで遅くなってるかとかの確認もしてないんだろ? 例えばどんなSQLがどのくらい遅くなったのか、そのときの実行計画は同じなのかぐらいは調べてさらせよ 確か遅いSQL一発で出せるやり方あったよな
事前にフラグ立てなきゃいけなかった気もするが 言っておくが彼はSQLが遅くなったとは一度も書いていない。 そもそも何も書いてないから切り分けろって言われてるんだが… DBでSQL実行が遅くなる以外に何が遅くなるって言うんだ…? >>160
可能性は低いだろうけど接続に時間がかかるようになったとかメモリー足りなくてスラッシング起きてるとか まあまずはなにがどう遅いか調べんと話にならん
あとはリストアしてからなにしたかだな
ほんとに互換性レベルだけで遅くなるとは思いにくい >>164
DBの機能が遅い以外何があるってんだよハゲ >>165
データベースは外部からSQLが発行されなくても、ただ動いているだけでもメモリ上のデータを定期的にファイルに書き込む。余裕があればファイルからデータを読み込む。
いっぱいあるがとにかくデータを失わない、データの整合性がとれなくならないようにする処理等があるんだよ。 >>166
で?
それはDBの機能じゃねえのか?
大体そんなバックグラウンド処理なんて四六時中走ってねーよこじつけんな Express版でオンラインバックアップ取る技ってないの? DBエンジニアの業務ってどんな感じですか?
↓みたいなイメージで合ってます?w
設計時:忙しい。責任重大。
開発中:DBのインストールやテーブルの作成が済めば、トラブルなければ特にやることない。
※開発中はC系のエンジニアなどがPG内にSQL文を書いてあれこれやるのをイメージしてます。
運用時:トラブルなければ特にやることない。
よろしくお願いいたします。 >>171
インフラ寄りなのか、アプリ寄りなのかでまったく違う。
ただ本来はどちらにも深く関わるのがまっとうなデータベースエンジニア。 ソフトの応答時間って結構重要なのに後回しにされがちなのね。
最後の最後で死にそうな顔して調整しまくってる DB エンジニアさんて結構ありがちと言うか。。。 >>173
そういう区別もあるんすね。ありがとうございます。
ちと調べてみまふ。 >>174
開発の上流から下流までチェックし続けないと、クソみたいなDB設計とクソSQLのてんこ盛りで、データ量が多いシステムだと死ぬ。 メンテナンスプランによる、インデックス再構築、統計の更新、完全バックアップあたりの
処理は毎日やってますか?
毎日やるのはバックアップだけですか? SSIS使いたいんだけど、SSDTをインストールしないといけない。
これは手持ちのクライアントPCにできないのかな?SSMSみたいに。
インストーラ立ち上げると「SQLServer データベース」が必須になっているよ。 >>177
完全バックアップ以外は週一でいいんじゃないの?
もちろん、DBのサイズや用途にもよるけど。たしか、ウィザードはそんな(週一)がデフォルトだったと思う。
うちは完全バックアップを毎日とっている。 >>178
SSISはSQL Serverが必要というよりは、Visual Studioが必要なんだよ。
Visual Studioは入ってるのか? >>178
SQL Serverは伝統的にサーバーソフトウェア、クライアントソフトウェアを作り分けていない。 >>180-181
サーバのリソース食うのは避けたいので、クライアントでパッケージ作成したかったの。
慌ててVS2019のCommunityインストールしてSSDT入れたら
要求されたメタファイル操作はサポートされていません。 (0x800707D3)
(涙) 最近VSCodeでSQL書いてるけどこれすげえいいな
補完もするし複数列にCASTだのISNULLだのつけるとき
マルチカーソルが便利すぎる
SQL発行の結果が帰ってくるのはManagement Studio
のが速いけどVSCodeのが起動速いし
実行計画見るときぐらいしかSSMS使わんくなった >>150
リプレース時の互換性レベルの変更は危険。
チューニング済みの SQLほど実行計画ボロボロになる。 ロール作成しようとしてるんだけど、Viewに対しては全DDL,DMLを許可し、Tableに対してはそれらを許可しない、っていう内容。
公式サイトをずっと見てるんだけど、オブジェクト単位で設定しないとダメなんだろうか。 なんかのソフトにバンドルされてるSQL serverてそれ単体でも使うことができる。
例というとPCに弥生会計をインスコしたらSQLserver2014SP2 ExpressEditionてのがインストールされたんだが。
同じPCにwordpress入れようと思うんだが、このSQLserver兼用できるのかな? ログインの認証周りが大丈夫ならいけるのでは
というかExpressインストールされるのはいいが、saにパスワード設定されていたら泣く 普通はWindows認証でadministratorで入れる 189ですが、1台のPCにSQL serverと弥生会計いれて、もう一台のPCに弥生会計を入れて、
2個の弥生会計からSQL serverをつつく作りになってるんだけど、
こういう場合て、ネットワークて同一セグメントで使うもの?
弥生会計の取説だと「同一セグメントで」て書いてあるんだが、ためにしもう一台をVPN接続越しで接続してみたり
SQL serverをAWSに置いてみたら激重になったんだが、DBてそういう使い方しないもの? >>195
今時の回線事情考えたら
DBの問題じゃなくアプリの設計の問題の可能性のが高い >>195
実際にできるできないはあなたの会社のセキュリティポリシーによるけど、
vpnで直接連携なんて怖くてやらない
同一セグメントでないとダメかといえばそんな事はない
しかし、FW、L3SWの設定はもちろん必須 弥生はどうか知らないが、SQL ServerをVPNの向こうに置いてもそれほど遅くならないよ。 AWSってSQLサーバのサービスをやってくれるの? >>196
アプリ設計の問題みたい。
https://yayoi-k.jp/yayoi-network/vpn/
DBを1拠点だけで突く設計みたい。複数拠点の場合はリモートデスクトップだ。 5席規模のデータ入力で
SQL Server Express使おうとしたら
「無償版とか信用ならん!!!」
って言って上司がライセンス購入しようとして聞かない
その割にベンダーからの見積もり30万って見て
高すぎ!安くして!と言ってくる
なんとかなりませんか、、、