Microsoft SQL Server 総合スレ 11 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
Microsoft SQL Server (Transact-SQL) の総合スレッドです。
・Microsoft 公式サイト
http://www.microsoft.com/japan/sql/
過去スレとかめんどいから誰か適当に貼って >>62
SqlServerのエラーログには何も吐き出されてなかったのですが、
OSのイベントログは見ていませんでした。そちらから調べてみます。 SQL Server (MSSQLSERVER) サービスの接続を待機中にタイムアウト (30000 ミリ秒) になりました。
と出力されていたので、タイムアウトの時間を60000ミリ秒に設定してみました。
これで発生しなくなるかはまだわかりませんが、しばらく様子を見てみます。
>>62
ありがとうございました。 そもそも30秒で起動できないような環境が正しいか検証するべきじゃね 2014 management studioで
TRUNCATE TABLE
でデータを削除してしまったのだが、UNDOは出来るの?
至急おしえてくれ。 UNDOが何の事を指してるか分かりませんが、できません
バックアップから回復して下さい >>67
バックアップはどこにある?
自動バックアップがあるの? 完全復旧モデルなら、今からバックアップ取って日時指定でリカバリできる気がする 潔く諦めるか、そこだけ何故か震度7に襲われたことにするか、ついうっかり硫酸をこぼしてしまうか 天狗の仕業にするか 様々な手はある
もしくはこれから徹夜で手入力し続けて、明朝やつれきってゲッソリした顔で上司を迎えて同情を買うか
まぁ、買ってはくれないだろうけれども 楽になりたいなら、びっくりするほどユートピア!を社員の前でお披露目するしかないだろうことは想像に難くない SQL Server 2012 SP3 をダウンロードしたいんだけどダウンロードセンターからダウンロードできない。
これだよねえ。
https://www.microsoft.com/ja-jp/download/details.aspx?id=49996
言語を選んでダウンロードボタンを押すと
ダウンロードしていただき、ありがとうございます。
Microsoft SQL Server 2012 Service Pack 3 (SP3)
インストール方法
以下略…
となってなにも起こらないです。
IEでもFireFoxでも同じです。
どうしたらいいす??
と、Chromeで試しながら書いていたらChromeではダウンロードファイルの選択ダイアログが出て、
ダウンロード開始することができた。ロサキネンシス! sqlserverからaccessのデータへ接続したいのですが
以下のページを参考にすると
http://sqltips.blog40.fc2.com/blog-entry-11.html
「Microsoft Jet 4.0 OLE DB Provider」というものが必要みたいなんですが
私のsqlserverには表示されていません。
どこかで手に入れてインストールしておく必要があるんでしょうか?
どなたか教えてください >>75
やっぱりそうなんですね
何とかaccessからデータ抽出する方法ってないでしょうか?
32bit版のsqlserverをインストールすればいけますか? Access側にSQL鯖へのリンク張って、そこで転送するとか >>74
64ビット版のODBCドライバ経由すれば良いんでない? Jet OLEDBは古い
ACE.OLEDBってのがあって、これは64ビット版もある
たぶんそれでできるだろうけど、ACEってサーバ側での使用は想定も許諾もされてない気がする
accessからSQLServerにリンクテーブル張るのが楽な王道じゃないかな リンク貼る時何選べばよかとよ?
native clientとか分からん選択肢が一杯出て来るけん SSMS2016でATOKが使えないんだが・・・
Win7x86 アプリの表示件数と実データの件数が合わないらしいから調べろと言われ
指示されたテーブルのフィールドを見たら泣きたくなった
だって、マスタキーがカンマ区切りで格納されてるんだもの orz
自分で関数作るか解析専用の外部スクリプト作るしかないのか? >>82
ちょっと思ったんだが、CSV型みたいなCLRのユーザ定義型を自分で作ってみるとかどうだろう >>81
ssmsでatokが使えないってどういう意味よ? SQLを発行してテーブルのデータを読み込む場合、
結果をDataTableに一気に読み込むのと、
SqlDataReaderを使って
while (dr.Read()){
...
}
のようにループで一個ずつ取り出すのとで、どっちが良いとかありますか? >>86
数件〜数万件くらいです。状況によって変わります。 >>87
上限が数万なら一気読みでいいかと
将来的にもっと増えるかもならループかな >>88
数が増えるとループのほうが良いのですか?
なぜですか? MySQLのREPLACE INTOに相当するコマンドはありますか? すみません、ご教示ください。
応研の給与大臣を使用していて、カスタマーサポートの指示に従いデータを復旧していたのですが、
以下の互換性コンポーネントをインストールするようダイアログが出ました。
Microsoft SQL Server 2005 の旧バージョンとの互換性コンポーネント
対象 : カスタマ、パートナー、開発者
X86 パッケージ (SQLServer2005_BC.msi) - 11258 KB
X64 パッケージ (SQLServer2005_BC_x64.msi) - 18552 KB
IA64 パッケージ (SQLServer2005_BC_ia64.msi) - 23490 KB
当方の環境がWindows10 64bitなのですが、どのパッケージをインストールすれば良いのでしょうか?
単純にX86 パッケージで良いものかわからなかったもので。 mergeで全項目上書きでいいんじゃね
そもそもdeleteしてinserすれば良いだけで
ちゃんとしたトランザクションをサポートするDBMSでreplaceの必要性がわからんが 生SQLだと0秒なのに、ストアド内に書くと35秒とか、
似たような悩みはググるといっぱい出てくるんだけど、どれ見ても解決してない様子
「推定実行プランの表示」ってダメ元で見てみたら、
ストアド版だけインデックス貼れって警告があって貼ったら直った
全く同じ内容なのに実行プランが違うわけないじゃん
もしかして有償サポート増やすために仕組んでる? mysqlやpostgreはいくら便利な命令があっても、スピードが遅いから単純なことにしか使えない
しかしまあ、t-sqlはお硬いやね
お硬いから速いのかもしれんが
GREATEST、LEASTぐらいは付けてもいいような SQLが同じでも実行計画が同じになるとは限らん
ストアドの実行計画は実行時に決定されるとは限らん
インデックス追加したということは、生SQLの方はインデックスを使ってないのに早かったのか
生SQLで使われてたインデックスがストアドでは使われてなかったのか
この程度の判断が自分でできないなら素直にどっかの業者に頼んだほうがいいんじゃね ていうか俺自身が方々で数十倍〜数百倍にスピードアップさせてきた業者だからw >>98
生SQLとストアドって言ってるんだけど、何が全く同一なのか?
推定実行計画は必ずしも実際の実行計画なわけじゃないぞ
ストアド内の個々のSQLの、実際の実行計画って簡単には確認できなかった気がするなぁ
だれか簡単なやり方しってる? 何が問題だったかわからんけど、とりあえず不要かもしれんインデックス追加して直りましたってか
パフォーマンスチューニングやる業者のレベルとしては信じられんな >>94
>replaceの必要性がわからんが
deleteしてinsertを一つのコマンドで実行したいからじゃねえ? 文字列型のカラムで
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文を教えてください。 >>101
dm_exec_query_statsにある情報でいいんかな
dm_exec_query_plan、dm_exec_sql_text組み合わせてステートメント単位でとってこれるよ
カーソルオープンは厳しかったと思うけど
生SQLが早いってことは検索条件に変数使ってるとかかね
分布が特異な偏りしてるインデックスをストアドで使うなら、with recompileつけるのが推奨だったと思う
ヒント文つけてもいいけど >>104
一旦日付型にCASTしてからフォーマット
つか特殊な要件が無ければ、DB上は日付型で保持してホストアプリ上で表示変換させた方が良いぞ
>>105
>dm_exec_query_plan、dm_exec_sql_text組み合わせ
それ見ても、どのプロシジャなのか探すのが大変だからなぁ >>106
>104
日付を文字列で保管するとどういうデメリットがありますか? >>106
dbidとobjectidで引っ張ってくればいいじゃない
うちはバックアップとかみたく自動で定期的にとるよう運用に乗っけてるよ
リリースして遅くなったなんてときにかなり重宝する >>107
orderbyとかwhere条件が大変
変換噛ましてやれないことはないが、そのぶんだけおそくなる
それにデータサイズも文字型のほうが大きくなる >>109
なるほど。
でも日付型は1750年以降くらいしか保持できないそうですが、それで
問題は出ないのですか? >>107
文字列で持ってたら、日付計算どうすんだよ
>>110
日付型って言っても色々あるから
dateかdatetime2使え >>111
>日付計算
このデータに関しては日付の計算をする予定はありません。
>dateかdatetime2使え
紀元前を扱うにはどうするのでしょうか? >>115
どういった目的で紀元前を扱いたい?
扱うとは具体的にどういった処理をする? >>116
紀元前を扱う目的はその年代の年月日をデータで保管したいから。
日付の計算はしない。
それだけ。 てきとーにアンインストールしたら次から全然インストールできんくなった...助けて インストールログみて止まってるとこでググる
システムの復元でアンインストール前に戻す
OSから入れ直す
なにも情報ないからこれくらいしか言えない ットアップが失敗しました。
クリーンアップが必要ですってポップアップがでてきます.. sql serverとmysqlとで同じテーブルを同期させるなんて出来ますか?
sql serverの本データをmysqlにコピーする感じで。 >>123
MySQLへリンクサーバー定義して、同期時に更新とかで出来そうな気がする
同期どうするかは考えんとダメだけど >>124
sql serverからmysqlへの一方通行のコピーなら簡単に出来るもんなの? リンクサーバ定義すれば、SQLServerからはローカルテーブルとほぼ同じように扱える >>126
ありがとうございました。
リンクサーバーでググってみます デフォルトだとdbo スキーマが使われますが、
実際の開発現場では、スキーマを何種類も作成して使い分けるなど
するのでしょうか?
dbo一個だけでテーブルを使い分ければそれで済む場合も多いと思いますが。 >>128
dboはスキーマではなくユーザー。
Oracleのようだと勘違いしてる? 今のSQLServerはDBユーザとスキーマが別なので、同じ名称のスキーマもユーザも存在するぞ
スキーマは使い分ける必要があればそうすればいいし
単一スキーマで問題なければ全部dboでもいいんじゃね >>132
>スキーマは使い分ける必要があればそうすればいいし
スキーマを分けるのは例えばどんな場合なん? >>134
テーブル更新できないスキーマ作ったりのセキュリティ要件とか
スキーマっていうよりユーザって言う方がしっくりくるんだけどな
まあどうせDBごとでユーザとスキーマは1対1だろうし
実際スキーマとユーザの違いはすっきり説明できん
単にワンクッション入ってるだけってイメージだ >>133
本来はユーザーで所有者なんだよ。
スキーマという概念は後付け。
SQL Serverではユーザーとスキーマは別のくくり。 私は元創価の会員でした。
すぐ隣に防衛省の背広組みの官舎があるのですが、
自分の家の窓にUSB接続のwebカムを貼り付けて、そこの動画を撮影し続け、
学会本部に送っていました。
別に大したものは写っていません。ゴミだしとか奥さんが子供を遊ばせている所とか。
官舎が老朽化して使われなくなってから、
今まで法人税(うちは自営業です)をほぼ払わなくても済んでいたのが、
もう守ってやれないのでこれからは満額申告するように言われました。
納得がいかないと言うと、君は自業自得で餓鬼地獄へ落ちる、
朝夕南無妙法蓮華経と三千回ずつ唱えて心をきれいにしなさいと言われ
馬鹿らしくなって脱会しました。
それ以来、どこへ行くにもぞろ目ナンバーの車につけまわされたり大変な日々です。
全部自分の出来心から起きたことで、どこに訴えるわけにもいかないのですが、
なんとかあの人たちと縁を切った上で新しい始まりを迎える方法はないんだろうか。 まあ、SQLServerに限れば、昔はスキーマとDBユーザは同一だったから
>スキーマという概念は後付け。
と言えなくはないかもしれんが
>SQL Serverではユーザーとスキーマは別のくくり。
とどうつながるのか理解できん スキーマを正しく説明出来る人はここにはいないんですか? CitrixのXenAppのデータベースのぞいたら、サービスの単位でスキーマ分けてたな
ユーザはコンピュータアカウントだけででdb_owner
そんなやり方もあるんだなと感心した
うちは機能単位でなんてわけられないからdbo1個
リソースガバナー使う場合もあるからユーザは複数 >>140
スキーマというのは、大抵のRDBMSで共通する概念ですね。
一つのデータベース内で論理的なグルーピングをするためのものです。
PostgreSQLのヘルプがわかりやすいので引用します。
> データベースには、複数の名前付きスキーマが含まれ、スキーマにはテーブルが含まれます。
> スキーマには、データ型、関数および演算子などの他の名前付きオブジェクトも含まれます。
> 同じオブジェクト名を異なるスキーマで使用しても矛盾は起こりません。
> スキーマの使用が好まれる理由はいくつかあります。
>
> ・1つのデータベースを多数のユーザが互いに干渉することなく使用できるようにするため。
> ・管理しやすくなるよう、データベースオブジェクトを論理グループに編成するため。
> ・サードパーティのアプリケーションを別々のスキーマに入れることにより、他のオブジェクトの名前と競合しないようにするため。
> ・スキーマは、ネストできないという点を除き、オペレーティングシステムのディレクトリと似ています。 >>140
>>133 に URL 書いてあるのになぜ読まん SQL Serverは日本マイクロソフトのサポートがやる気ねえからな。 Windows Server 2012R2 のWindows VPSでSQL Server Express 2016動かすには
メモリ2GBだと厳しいか?
IISも動かしている。 Expressは使用メモリ1GBに制限されてなかったかな…
もちろん余裕があるに越したことはないけれども Committed bytesの適正値を考えると、メモリ2GBならIISとSQLserver合算で1GB未満、できれば600〜800MBくらいかなあ感覚だけど
IISとSQLserverで上限設定しときゃサーバーが不安定になるのは抑えられると思う
素直にメモリ増強するのが一番いいけどね >>147>>148
レスありがとうございました。
余裕をみて4GBくらいでVPS契約してみます。 >>149
個人利用でやる分には2GBでもいいと思うよ
会社のパソコン(Windows7の32bit、メモリ2GB)にSQLserver Developer EditionとIIS入れてて普通に動作する
Officeとかも使うとやっぱきつくなるんで普段はサービス停止してるけどね 質問です。
先日、知り合いの店でデータベースリストアが勝手に走ったのですが
何が原因なのか不明な状態です。下記が一部ログになります。
The database '*****'' is marked RESTORING and is in a state that does not allow recovery to be run.
分かる方いらした教えてください。 ある特定のテーブルで大量の件数をDeleteする時だけ
異常に時間がかかるんですが何故だかわかりますか?
ググってもイマイチ分からんです
Delete From TABLE Where PK<****
みたいな単純なやり方なんですが…
エスパーの方教えてください >>153
断片化が走りまくってるとか?
Insertするときもプライマリキー張ってると徐々に遅くなってくしそれかも
一回リビルドインデックスしてからやってみたら変わらんかなあ
sum関数でInt型の限界越えてオーバーフローしたんだが、実行プラン次第でオーバーフローしたりしなかったりするのは仕様?不具合?
2008r2から2014のsp2に移行しようとして本番データで動かしたらエラーなりやがった
MSに問い合わせる前にバグか仕様かのあたりつけときたい >>153
SELECTするときも時間がかかってる? あとでrollbackされたときに備えて、delete予定データをいったんtempに吐いてるから
データ数が多いと死ぬほど遅い
生かすデータだけ別テーブルに吐いてtruncate tableして別テーブルをリネームしたほうが早い場合もある >>156
そんな初心者みたいなアドバイスするなよw >>156
1000万件中10万件だけ残したいとか
そういう時はそっちの方がいいよね
truncateは本当に爽快 だけど、>>156 以外に方法ないんだな、これが
あと、1回あたりのdelete数を減らしてやって(その分、何回も回して)
1トランザクションあたりのロックを多少なりとも緩和するか ■ このスレッドは過去ログ倉庫に格納されています