Microsoft SQL Server 総合スレ 7
>1
乙
もうこのスレ立たないかと思ってたよ。
3 :
NAME IS NULL:2009/01/15(木) 03:50:06 ID:KpJdt7sb
質問です。
MSCSでフェールオーバーした場合、元で動いていた
プロセスはちゃんと引き継げますか?
それともプロセスはシステムが停止した時点で、
死にますか?
賢者教えてください。
SQLServerをインターネット上に公開して使うのは愚か者ですか?
「ポートを変える(1433から他の物に)&SSLを使う」等のセキュリティ対策ではぬるいですか?
その他条件ですが。
・不特定多数の使用なので、VPNは不可
・クライアントアプリは作るので、接続先、ID/PW等はEXEに埋め込んででも隠すことは可能です
「不特定多数のクライアントから、データを吸い上げるにはこれがセオリーだ」って言うのがあったら
ついでに教えてください。
それ以前にそのサイトがピンポイントで狙われるような存在なのかってのが重要だな。
それなりの対策したってその手のエリートにかかれば突破されるんだし。
ドブスが一生懸命痴漢対策してるようなもんじゃなきゃいいが。。。
せめて、Web サーバーを挟めよ・・・
>>4 もし可能なら1回公開して運用してみるといい。
実際には被害なんて受けないよ。
4です。皆さんご教授ありがとうございます。
>>5 >>7 確かに。過去にも実績があったのですが、特に被害を受けたことはありません。
ただ、時々いますよね。実際にやったことも無いくせに、セキュリティを淡々とかたる学者みたいな奴。
ニッチなシステムで多くの人の目に触れることはありませんが、それでも相手が不特定多数で、売り
込む際、学者みたいな奴のつっこみを受けたくなくて。。。
SQLServerを公開して、クライアントからデータをアップするのが、早い・安い・旨いの3拍子なんです
けど、こんな場合、FTP・Winsock等々セキュリティの観点からみたセオリーってあるんですか?
>>8 「セキュリティを強化することはもちろん可能ですが当然それなりの工数(=金)がかかります。」
と言えばいい。それでだいたい相手は黙る。
もちろんたんまり貰えるならやってあげてもいいけどな。
んだんだ
4です。
>>9 受託開発ならね。今回はパッケージもんだから、その手はは通じないんです。
ここでタダで教えるのは嫌だなー
えー、いじわる。。。
自分で勉強するからヒントだけちょうだい。。
BooksOnlineよめ
MSが定期的に開催しているセミナーに参加するのが一番手っ取り早い。
MSDNのサイトに行けばいくらでも情報があるよ。パッケージにするんだったら、ケチらずに金をかけなさい。
16 :
NAME IS NULL:2009/01/17(土) 08:14:52 ID:Z8b9/4dj
SQL server2000を使っています。
普段は数メガしか減らないのに、ディスクの空き容量がいきなり600MB
も減りました。
どんなことが考えられますか?
>16
6GBのDBにデフォルト設定の自動拡張とか。
19 :
NAME IS NULL:2009/01/18(日) 11:53:01 ID:mAtLoPm3
20 :
NAME IS NULL:2009/01/18(日) 11:53:24 ID:mAtLoPm3
大元の流出報告スレ
仁義なきキンタマ ウイルス情報 Part80
http://changi.2ch.net/test/read.cgi/download/1229742858/546 546 :[名無し]さん(bin+cue).rar :sage :2009/01/04(日) 00:24:59
報告する時は、詳しく的確に、一部だけ報告しないでお願いね
[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee
膨大な量のファイル数キンタマ ファイル数 13508 フォルダ数2381
以前勤めてた会社の資料など多数 独立行政法人情報処理推進機構などの資料など無いと思うが
有るかも知れない、あまりにも数が有り過ぎる、メールなどは、古いものばかりメルマガなど膨大な量
個人情報などは、披露宴主席者などの住所、名前、電話、メール 数十人分しかしエロばっかり落としてるな
ちなみに ハメ撮りscr 踏んだみたいね
早稲田実業学校中等部卒業
早稲田実業学校高等部卒業
早稲田大学政治経済学部政治学科卒業
卒論「知的財産権とインターネット技術」
当時の同大学理工学大学院の大川功 賞佳作を受賞
コンピュータ関連会社に入社ソフトウェア開発の仕事を経て
2005年に独立行政法人情報処理推進機構に入社
ソフトウェア・エンジニアリング・センター企画グループに配属
同グループ主任 岡○さん33歳
21 :
NAME IS NULL:2009/01/18(日) 11:53:45 ID:mAtLoPm3
22 :
NAME IS NULL:2009/01/18(日) 11:54:08 ID:mAtLoPm3
23 :
NAME IS NULL:2009/01/18(日) 11:54:31 ID:mAtLoPm3
24 :
NAME IS NULL:2009/01/18(日) 11:55:17 ID:mAtLoPm3
IPA職員 岡○主任のP2PソフトShare違法ダウンロード履歴から見る華麗なる性癖 @
(国の情報流出を指導する専門職でありながら幼女児童ポルノ、アダルトビデオ
エロゲーム、違法アプリと違法ファイルをダウンしまくり)
ハメ撮り流出で有名なケツ毛もダウンしているが、自分も同じ運命になるとはw
querytab.txt
Atok,,127 Atok pocket,,127 Atok mobile,,127 広瀬奈央美,,127 葉月エリナ,,127 白石ひとみ,,127 大石あやか,,127
光月夜也,,127 池上ゆりこ,,127 美竹涼子,,127 古都ひかる,,127 川島和津実,,127 高井桃,,127 吉沢美和,,127 乃亜,,127
沢木まゆみ,,127 wmwifirouter,,127 関西援交 25 早紀,,127 関西援交,,127「中で出して」がいい!,,127 なにわ書店,,127
ナンパした女子高生 その2,,127 なにわ書店 覗,,127 すけべっこ倶楽部,,127 マニアック宣言,,127 Kathy Liu,,127
Tiger Eyes,,127 宇都宮さぽーと白書,,127 麻生葉子,,127 安里祐加,,127 援助交際日記,,127 加藤ゆりあ,,127 管野美保,,127
小泉ゆり,,127 光咲玲奈,,127 立花里子,,127 堤さやか,,127 友崎りん,,127 長瀬愛,,127 中根ゆま,,127 ハイジ,,127 長谷川いずみ,,127
水原さやか,,127 宮下杏奈,,127 持月真由,,127 吉澤あさみ,,127 オーロラ,,127 さかあがりハリケーン,,127 ナースにおまかせ,,127
姉汁,,127 姉、ちゃんとしようよ,,127 はぴねす!,,127 エロゲ,,127 VPN,,127 美少女,,127ケツ毛,,127 村上里沙,,127水着,,127
身体測定,,127 パンチラ,,127 ソックス,,127 無修正,,127 大沢佑香,,127
★上記履歴の「ハイジ」はアルプスの少女ではなく、この変態ロリコンAVです。
「汚れを知らない無垢な性器に、オヤジどもが中出し」っておい!w
http://pics.dmm.co.jp/mono/movie/1iesp309/1iesp309pl.jpg http://pics.dmm.co.jp/mono/movie/1iesp274/1iesp274pl.jpg http://pics.dmm.co.jp/mono/movie/1iesp344/1iesp344pl.jpg
25 :
NAME IS NULL:2009/01/18(日) 11:55:43 ID:mAtLoPm3
538 :名無しさん@自治スレにてローカルルール議論中:2009/01/05(月) 17:30:09 ID:AFF1H2Dz0
こいつsoft etherってソフトも落としてるだろ?
これ、ATOKなんかよりもっと重要なところ。
重要だから何度も言っちゃう。
知らない人のために教えとくと、IPAは「未踏ソフトウェア創造事業」
ってのをやっている。
これは学生や個人の開発者を公募・選考して、
一年間くらい金を与えて開発させ
優秀な人材を発掘・援助しましょう、ってもの。
まあ、聞こえはいいんだが、実際はクソみたいなプロジェクトばっかりで
ほとんどが金だけもらって逃亡、消息不明で終わるわけだが
IPAはそれをエサに国から補助金(税金)をしこたまもらって、
こういうアホどもが高給むさぼってるわけだ。
で、その未踏〜の中でわりと有名で
製品化までこぎつけた稀有な例がこのsoft etherってソフト。
自分のとこで税金使って開発支援したソフトを
つこうて違法ダウソするってwww
未踏にも味噌つけたねwww
ま、前から売名とか小遣い稼ぎくらいにしか思われてなかった糞事業だけどww
つこうたコピペうざい。
思いやりとか目くばり気くばりとかそんなサヨク(左翼ですらない)臭いもんじゃなくてさ
日本人だったらもっとこう粋(いき)とか鯔背(いなせ)ってもんが
生まれ育った中で身体に染み付いた物として自然に出て来なきゃ駄目だよ
人のためなんて一々頭で考えるんじゃなくて、格好悪いから野暮な事はやらない。
それだけで充分だろ。
江戸しぐさとか知識武装にだけ必死な自称江戸っ子のお上り百姓が多過ぎだよ。戦後の東京は。
29 :
NAME IS NULL:2009/01/23(金) 10:36:15 ID:dI2O6+I7
30 :
NAME IS NULL:2009/01/23(金) 13:59:11 ID:NC5Mxsi2
すみませんがどなたかこの初心者に教えてください。
書籍で「Visual Basicで学ぶ ADO.NET3.5データベース プログラミング」という書籍を購入しました。
本には環境設定ということで、記載されてるWebにアクセスして、サンプルダウンロードしました。
そしたら、MDFファイルしかついていなくてLDFファイルがありません。
出版社ではMDFだけで実行できると言っているのですが、実際はVSからMDFに接続しようとすると
LDFがない、ようなメッセージが出てしまい接続できません。
DBのmanagement studioでも接続できません
どうすればVS2008からMDFに接続できるのか教えてください。
>>30 ldf は単なるログファイルなので、なくても mdf は使えるよ。
ldf ファイルは SQL Server にアタッチすれば自動的に作成される。
SQL Server 2005 Express がインストールされている環境なら、
VS2008でソリューション エクスプローラーのプロジェクトに mdf ファイルをドラッグ&ドロップ
(またはプロジェクトで既存の項目を追加を選択。ファイルの種類をデータファイルとして mdf ファイルを選択)すれば、
mdf が一時的にアタッチされて、ldf ファイルが作られる。
それ以外のエディションなら Management Studio でデータベースからアタッチ、mdf ファイルを追加。
データベースの詳細から ldf ファイルを削除してから OK を押せば ldf なしでアタッチできる。
SqlServer2005Expressをインスコしたんだが、これって別PCからはアクセスできないの?
サーバー名はちゃんと「マシン名\SQLEXPRESS」と指定してるんだが、インスコしたPCからは
アクセスできるが別PCからだと「存在しないか権限がありません」みたいなエラーが出てアクセスできん。
接続ダイアログのサーバー名のコンボボックスにもそのPC名が出てこないから認識されてないのかな?
共有フォルダとかは普通に見れるからLANには問題なさそうなんだが・・・
>>32 スターメニューのSQL Serverのところを調べてみる。
35 :
32:2009/01/24(土) 08:15:51 ID:???
>>34 無事起動することが出来たよありがとう。
早急にプログラムのテストをしなければならなかったから本当に助かった。
36 :
32:2009/01/24(土) 08:17:11 ID:???
37 :
NAME IS NULL:2009/01/24(土) 12:27:49 ID:TN/Mb8pu
流出した特許庁のシステムは、大金で岡ちゃん息子に開発委託した特許庁内部システム現物
それに含まれるデータ部分が、現在では公開済みデータ、だから問題ないってさ
流れ出た ファイルは、ご自由にフリーに使って良いって事ですね
国民の税金巨額に掛けて作ったシステムを無料でって、なんて大判振る舞い www
以下で勉強しましょう
------------------
798 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/24(土) 11:59:53.96 ID:97CqafnI
特許庁のシステムとか、西武百貨店のシステムとか、三井リハウスのシステムとか
アクセス→SQLサーバー接続で作ったシステムです
それぞれ、プロが数千万円の報酬や助成金で作った、総額ん億円のシステムです
プログラム作成のお勉強見本としてドゾー
[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee
667 名前: すずめちゃん(アラバマ州)[sage] 投稿日:2009/01/23(金) 08:37:38.26 (p)(p)ID:0TdsZA/G(2)(2)
解析班のために岡ちゃんが流出させたファイル全部うpしとく パスは 135 ね
解凍したら全部で6Gあるから注意してね ウイルス削除済み
(p)(p)
http://www.adrive.com/public/641c54c1691f6a0da8b0e936c76aed6c1b0bb541f28a5d634a071b826193feaa.html (p)(p)
http://www.adrive.com/public/c4e4ca7e26ba539ac74cbd2b4b15f3c5bbfa7cc5d83909a6ecd5d108a29373c1.html 両方一緒にDLすれば早いぞ2時間位 両方DLしてから解凍してくれ
拡張子.dbxは下のフリーソフト使えば見れるようになるよ
(p)(p)
http://www.asahi-net.or.jp/~tz2s-nsmr/soft/dbxview/ne03ws.htm 拡張子.mdbはエクセルで開ける 起動フォームでテーブルがブロックされるものは
シフトキー押しながら起動で解除してテーブル見る
中のファイルのパスは DD`(4Y か test で だいたい開ける
それでもダメなら報告してね 皆で解析するからw
後、個人情報を悪用したらダメだよw解析用だけにつかってねw
38 :
NAME IS NULL:2009/01/24(土) 20:27:55 ID:u1WNrIEs
39 :
NAME IS NULL:2009/01/24(土) 20:28:20 ID:u1WNrIEs
★大元の流出報告スレ
仁義なきキンタマ ウイルス情報 Part80
http://changi.2ch.net/test/read.cgi/download/1229742858/546 546 :[名無し]さん(bin+cue).rar :sage :2009/01/04(日) 00:24:59
報告する時は、詳しく的確に、一部だけ報告しないでお願いね
[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee
膨大な量のファイル数キンタマ ファイル数 13508 フォルダ数2381
以前勤めてた会社の資料など多数 独立行政法人情報処理推進機構などの資料など無いと思うが
有るかも知れない、あまりにも数が有り過ぎる、メールなどは、古いものばかりメルマガなど膨大な量
個人情報などは、披露宴主席者などの住所、名前、電話、メール 数十人分しかしエロばっかり落としてるな
ちなみに ハメ撮りscr 踏んだみたいね
早稲田実業学校中等部卒業
早稲田実業学校高等部卒業
早稲田大学政治経済学部政治学科卒業
卒論「知的財産権とインターネット技術」
当時の同大学理工学大学院の大川功 賞佳作を受賞
コンピュータ関連会社に入社ソフトウェア開発の仕事を経て
2005年に独立行政法人情報処理推進機構に入社
ソフトウェア・エンジニアリング・センター企画グループに配属
同グループ主任 岡田賢治さん33歳
40 :
NAME IS NULL:2009/01/24(土) 20:28:40 ID:u1WNrIEs
ユーザーがあるバッチ処理を実行しようとした時に1つでもクライアントが接続していたら
エラーにしたいのですが、そういう情報を知る方法ってSqlserver2000や2005にあるのでしょうか?
ある。が、シングルモードで開けば?
>>42 レスありがとうございます。
ある(見渡せる程度の)事務所でクライアントPCは10台程度なのですが、
今はそのバッチ処理をやる時に一台一台見てまわってシステムを
起動していないかをチェックしているのですが、バッチ実行時に
「[マシン名]がシステムを起動しているため実行出来ません」という
ようなメッセージを出すようにして見回る労力を減らしたいのです。
シングルモードというのでそれが可能なのでしょうか?
>43
シングルユーザーモードは1接続のみを許可するだけ。他は繋がらないよ。
ManagementStudioの管理の接続状況モニタでも見れば現在の接続一覧を見れるよ。
そこから全部強制切断しちゃえばいいかなと。
45 :
NAME IS NULL:2009/01/26(月) 17:14:22 ID:ZZvoGAv6
SQLEXPR32_JPN.EXEとSQLEXPR_JPN.EXE
はどう違うのですか?
>注: SQLEXPR32.EXE は、32 ビット オペレーティング システム用の SQL Server Express の
>インストールだけに使用できる、小型のパッケージです。
>SQLEXPR.EXE パッケージの方は、32 ビットと 64 ビット (WOW インストール) の両方の
>オペレーティング システムへのインストールをサポートしています。
>これらのパッケージに、それ以外の違いはありません。
おーー!!!ありがとう
注意事項に書いてあったのですね、でもありがとう
【OS】Windows7Ultimate 32Bit
失敗
Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 3 (KB955706)
インストール日時: ?2009/?01/?28 19:59
インストール状態: 失敗
エラーの詳細: コード 7370
更新プログラムの種類: 重要
このサービス パックは、Microsoft SQL Server 2005 Express Edition with Advanced Services の
すべてのインスタンスとコンポーネントを Service Pack 3 (SP3) にアップグレードします。追加の
インストール オプションが必要な場合は、このサービス パックを Microsoft ダウンロード センター
からダウンロードする必要があります。詳細については、サポート技術情報の資料 955706 を参照してください。
詳細情報:
http://support.microsoft.com/kb/955706 ヘルプとサポート:
http://support.microsoft.com なんでぇ?
Service Pack 3 として単体で提供されているのは
Express は対象に入っていないんじゃないのかな。
Express with Advanced Services SP3 ってのをダウンロードして
インストールすればいい。
同じコンポーネントがすでにインスト0ルールされているってでるけど
アップグレードできる。
>>50 SP2が入って無い場合はSP3を入れる前にまずSP2を入れなきゃいけないのですか?
しかしSP1ってのは見当たりませんね。
いきなり SP3 でいいよ
55 :
54:2009/01/31(土) 17:33:25 ID:???
自己レスです。
デフォルトでは自動的に全てのプロセッサを使うようになっているようです。
そして使用するプロセッサを限定したい場合はアフィニティマスクというものの
設定を変えればよいが、よほど特殊な用途でなければこれを変える必要はない
ということです。
4プロセッサの並列処理でどれくらいパフォーマンスが上がるか楽しみです♪
7.0から2000へデータコピーを、コマンドラインでやりたいのですが、
ひとまず、
・2000側にDB、テーブル類完備で単にデータだけコピー
できればいいんですが、できれば、
・2000側が空の場合でも、データ型、pろしじゃ等オブジェクト類ひっくるめてコピー
できるといいなと思っています。
やり方ずばり、もしくは参考になるサイトがあれば教えてください。
>>56 追記です
サーバーはLAN上で別々のPCで動いています。
・7.0でデタッチして2000でアタッチ
・7.0でフルバックアップして2000でリストア
のどっちかでいいんじゃね?試してないけど。
それはバージョン間の互換性の問題で不可能だった希ガス
デタッチアタッチもバックアップからリストアも上のバージョンに移す分には出来たと思ったけど。
前のバージョンに移すことは出来ないけど。
デタッチ・アッタチでアップグレードは出来るが、
7と2000で制約の実装方法が違ってて、
7の制約が2000ではトリガで見えるといった不整合は出たように記憶している。
62 :
56:2009/02/03(火) 21:29:18 ID:???
みなさん、レスありがとうございます。
デタッチ・アタッチ、知らない言葉だったので、少し調べてみます。
ひとまず、7.0のEnterpriseManagerから全DBのSQL文を生成して2000側に流し込めば器だけは
作れそうなのでここからやってみます。
あとはbcpで何とかなるかな・・・
何がやりたいかというと、スタンドアロンのPC-POSがあちこちの店舗にあって、
そこから中身をごっそり定期的に抜いているのですが、最初はレジ分解してHDDイメージからコピー
してたのを、色々調べてくうちにMSSQLで動作してるのがわかり、ひとまずDTSエクスポートでやってたりしたんですが、
これだと全DB抜くの大変だし、LAN上の他PCから抜けそうだというのに気づいたので方法を探していたのです。
>>62 コマンドラインでやりたい=EnterpriseManagerは一切使わない
という意味に解釈してたのに。。。
64 :
56:2009/02/04(水) 00:13:02 ID:???
>>63 わかりにくくてすいません、その解釈で結構です。
ネットワークでDBやらテーブルやら構成情報ひっくるめてコピーできれば空のSQLサーバ
入れたPC持って行くだけで済むので話が早いのですが、その方法を探っていたときに、
EnterpriseManagerの機能でSQL生成というのを発見したのでPOS側の構成を書き出して
2000側に流して器だけ作ってしまえば、後はデータ移動(コピー)の方法だけ考えればいいかなと。
今まではPOS側のHDDイメージから自PCに展開したり、
ローカルでEnterpriseManagerでUSBメモリにデータを抜いていたのですが、
8箇所8台を閉店時間中に回って、テナントで入ってる店舗については退出時間にも
気を配りながら作業していたので、、、、
営業時間中に、ネットワーク経由でバッチ処理できればと思い、やり方を捜索中です。
>64
sqlmaintでバックアップを取るタスクを入れて
そのままバックアップファイルをファイルサーバーへコピーとかまでタスクに入れておけばいいんじゃないかと。
バックアップを展開が面倒ならDTSでエクスポートするジョブを定期的に動かす方向でやってみるとか。
たぶん、ぶっ壊れると思う
誰か知ってたら教えて。sqlserver2005で
特定のテーブルが"コミット"されたタイミングでストアド動かす方法ってある?
ない
トリガ
70 :
NAME IS NULL:2009/02/05(木) 10:11:44 ID:kv2kVQ05
トリガはコミットされたタイミングではないな。
コミットトリガーはないと思う。
つーか、トリガーとトランザクションって全く別分野のような気が…
>トリガーとトランザクションって全く別分野のような気が…
????
DBMS固有の機能でいろいろ変わる場合もあるが、一般的にはこんな動きが普通。
トランザクション中にトリガが動く。
トランザクションをロールバック。
トリガの行った変更もロールバックされる。
75 :
NAME IS NULL:2009/02/06(金) 16:44:48 ID:Tew1rXd7
MS SQL Server 2005 Expressで、SQL CLRをプロジェクトから配置する以外の、配置方法ってある?
例えば.exeにして実行するとか、.sqlでSSMSEから実行するとか。
>>75 T-SQL で可能。
CREATE ASSEMBLY .. で dll を登録してから、
CREATE PROCEDURE .. AS EXTERNAL NAME ... でエントリポイントとなるストアドプロシージャを作成。
関数なら CREATE FUNCTION。
>>76 ありがとう。
なるほどdllを登録してからやらにゃいかんのね・・・
そうなると差分や更新のデータだけ送りつけて更新してねってような
感じでは無理そうだね・・
うーん。exeをダブクリするだけのようなうまい更新方法はないのかな。
ありがとう。
After Trigger
チンタイガー
80 :
NAME IS NULL:2009/02/07(土) 17:38:46 ID:ICCtkoiY
16cpuで物理ディスク4個のサーバーでSQLSERVERのDATAファイル16個を配置するとき
Eドライブ(DATAファイル1、DATAファイル2、DATAファイル3、DATAファイル4)
Fドライブ(DATAファイル2、DATAファイル3、DATAファイル4、DATAファイル5)
Gドライブ(DATAファイル6、DATAファイル7、DATAファイル8、DATAファイル9)
Hドライブ(DATAファイル10、DATAファイル11、DATAファイル12、DATAファイル13)
か
Eドライブ(DATAファイル1、DATAファイル5、DATAファイル9、DATAファイル13)
Fドライブ(DATAファイル2、DATAファイル6、DATAファイル10、DATAファイル14)
Gドライブ(DATAファイル3、DATAファイル7、DATAファイル11、DATAファイル15)
Hドライブ(DATAファイル4、DATAファイル8、DATAファイル12、DATAファイル16)
のどっちがパフォーマンスいいのかな。後者のような気もするけどそんな単純なこと
じゃないんだろうなあ。
>>80 どのファイルにどれだけアクセスするかによるんぢゃね?
83 :
NAME IS NULL:2009/02/07(土) 20:16:38 ID:ICCtkoiY
>>82 うーん、そうだよね。ちなみにみんなプライマリファイルグループなんだけどね。
16cpuで物理ディスク4個という時点で、馬鹿だと思った。
16CPUってw
ジーオン4個ってことなのか?
そもそもバカ高いEnterpriseEdition以外(2005の場合)は4CPUまでしか対応してない訳だが?
アホみたいに金がかかるシステムだな。まあ男は「最強」を求めるものなんだろうけど。
>>80 素朴な疑問
この構成ってアプリからは1DBサーバーとして見えるのかな?
意味不明w
>>83 >プライマリファイルグループ
つまりディスクアクセスの分散だけを狙ってるわけか。
端のほうから使ってゆくはずだからあんまり分散にはならない気がするけど。
非クラスタインデックスのグループを分けたほうが有効じゃないかな。
それよりもまず、ログと(2005以降なら特に)TempDBを高速なディスクに分けるのが先だな。
>>88 例えばHogeDBってのがあったとしたらそのMDFとLDFを別ドライブに保存するように
すれば高速化されるってこと?
それはこの2つのファイルが同時にアクセスされるものだからってことだよね?
インデックスは全てTempDBに入ってる?からこれもHogeDBのMDFとは別のドライブに
保存したほうがいいと。
つまりドライブが3台(C・D・E)ある場合は
HogeDBのMDF → Cドライブ
TempDBのMDF → Dドライブ
HogeDBのLDF → Eドライブ
TempDBのLDF → Eドライブ
とすれば結構早くなるのかな?
あと「非クラスタインデックスのグループを分ける」って意味がわからないんだけど
非クラスタ化インデックスもクラスタ化インデックスもTempDBに入ってるんだよね?
どうすれば分けられるの?
(ちなみに私は
>>83ではありません。。。)
>>89 インデックスはTempDBには、入っていない。
テーブルの構成やデータ量が正確にわかっているなら、
パーティション化やテーブル毎に配置を考えるのがベストなのだが、
導入のときは正確に把握できないことが多いので、
一律に索引だけを別にするという手法がとられることがある。
alter databaseか管理ツールでPRIMARY以外のファイルグループを追加しておいて
create table xxx ( ... ) on PRIMARY
create index xxx_idx on xxx ( ... ) on GROUP2
ただしクラスタ索引はデータレコードと一体なので分離できない。
>>89 >>90の言うとおりインデックスはTempDBには入らない。
ただインデックス作成時にSORT_IN_TEMPDBをONにすれば
インデックスの並べ替えにTempDBを使うようになるから
その場合はTempDBをHogeDBとは別ドライブにすることで
処理は高速化する。
>>92 SORT_IN_TEMPDBがONになっているかどうかってどこかから確認できる?
GUIでインデックスのプロパティみても
「並び替えの途中結果をtempdbに保存する」ってとこはグレーアウトしたままだし
再構築する時にONにするしかないのかな?
94 :
NAME IS NULL:2009/02/12(木) 14:04:01 ID:JAF6RW0o
おまえらが使っているSQLsvrてバージョンいくつですか?
俺はちなみに2005です
95 :
93:2009/02/12(木) 14:25:00 ID:???
2008です
年末に移行しました
2008 Expressは、2005用のManagement Studio Expressを使えばいいの?
2008用がでてる
98 :
NAME IS NULL:2009/02/12(木) 22:01:25 ID:wlXnoKy5
>>95 使ってみてどう? 自分はまだ2005EXSP2なんだわw
大したことに使ってないから、SP3にあげてもいいかなと思ってる位
自分のPC用には上げて、今のところ問題ないかな
あれ、SQL Server 2008 Express with Advanced Servicesの構成見たら
SQL Server Management Studio Basicってあるね。
インストールされなかったけど、先に2005用のを消しておかないとダメかな?
100 :
93:2009/02/13(金) 07:04:00 ID:???
>>98 特に問題ないけど
バクアップ圧縮とページ圧縮はいいかな
あとINのパラメタ化がADOから簡単にできるようになったのはありがたい
Win2003server+SQLserver2005を使っているのですが、
SQL2005のセキュリティアップデートKB960089が何度やってもエラー コード: 0x7358 で失敗します。
ローカルにダウンロードしてからインストールしても失敗します。
また、その失敗してからというもの、いきなり接続できなくなります。
サーバを再起動させるとSQLには接続できるようになります。
なんでこんな事になったのか、誰か分かる方いらっしゃいませんか?
>>101 どっかに詳細ログ吐いてると思うけど見てみれば?
>>100 > あとINのパラメタ化がADOから簡単にできるようになったのはありがたい
IN (@Params) とかができるようになったの?
参考URLとかあったら教えてほしいです。
ググってもみつからない・・・
105 :
NAME IS NULL:2009/02/16(月) 03:20:44 ID:ltOBxXpi
ストアドの再コンパイルを行いたいと思い、
sp_recompile を見つけたのですが、
これだと「次回実行時」に再コンパイルを行うとあります。
Oracle の ALTER PROCEDURE ... COMPILE;
のように即時に再コンパイルを行う方法を教えてください。
SQLマネージャでDBを開くとバイナリデータの部分が0x00000000ではなく
<バイナリ データ>と表示されて情報が見れないのですが
どうすれば表示出来るのか教えていただけないでしょうか?
使っているソフト
Microsoft SQL Server Management Studio Express 9.00.4035.00
SQLServer2005
109 :
NAME IS NULL:2009/02/17(火) 00:26:06 ID:/8iwrAGl
SQL Server 2005において、毎日あるテーブルのある条件のデータを削除
したいので、以下の方法にて実行しましたが、削除されておりません。
どこが原因なのでしょうか?よろしくお願いします。
・Delete.sqlというファイルをDドライブ直下に保存
(Delete from [table] where id=xx)
・上記ファイルの起動バッチをDドライブ直下に保存
(sqlcmd -u[ユーザー] -p[パスワード] -d[DataBase] -i d:\Delete.sql)
・Windowsのタスクスケジュールにて実行
コマンドラインで実行してみる
タスクで run(即時実行してみる)
とか、切り分けできることはいろいろあんだろがよ・・・
案外コミットしてないとかいう初歩的な
>>109 プロファイラで実行されてるかどうか確認したら?
ていうか、そのバッチを手動で叩いたらちゃんと消えてるのか?
件数多すぎてタイムアウトしてロールバック
114 :
NAME IS NULL:2009/02/17(火) 18:51:09 ID:QYqzYyuA
初めまして、よろしくお願いいたします。
どうかアドバイスを下さい。
Visual Studio 2008を使っていて、1台の自宅PCにインストールしています。
インストールしているのは、SQLServer2005 developper edtion + VB 2008です。
この環境でC/Sアプリを作り始めました。
経緯としましては、VBアプリを作るのにVSを起動して、プロジェクトの種類でVB、テンプレートで
Windowsフォームアプリケーション、をクリックして進み、プロジェクト名をjob_testにしてOKをクリックしました。
VSが起動し、左にサーバーペイン、右にデータソースペインが表示されました。
ここからが問題なのですが、データソースペインがうまく機能しないのです。
1. 「ペインの「新しいデータソースの追加」をクリック
米データソース構成ウィザードが軌道します。
2.「データソースの種類」で「データベース」を選択して「次へ」をクリックして進みます。
3.「データ接続の選択」で「・・・使用するデータ接続」で既存の接続を選択して、
ラジオボタン「はい、重要情報を接続文字列に含みます。」を選択してクリックして進みます。
4.「接続文字列をアプリケーション構成ファイルに保存しますか?」で「次へ」をクリックして進みます。
5.ここ(データベースオブジェクトの選択)でエラーが発生します。メッセージは、「データベースから
情報を取り出すときに、エラーが発生しました。MicrosohutoVisualStudio.datadesignsync.
designersync.Facedsync,TableConfigManager のタイプ初期化
子が例外をスローしました」と表示され先へ進めません。
どうか解決方法を教えて下さい。
それと境い目の現象なのでVBのスレにもレスさせて頂きます。ご了承くださいませ。
>>114 SQLServerのネットワークの設定はした?
デフォルトではTCP/IPが無効になってる。
116 :
109:2009/02/17(火) 21:49:51 ID:/8iwrAGl
ログを出力するように設定し、バッチを起動させたところ、以下のような
エラーが出ました。
「DELETEが失敗しました。次のSETオプションには不適切な設定
’QUOTED_IDENTIFIER’があります。
SETオプションが、インデックス付きビュー、計算列のインデックス、
クエリ通知、またはXMLデータ型のメソッドで使用するのに適切で
あることを確認してください。」
これは、SQL文の書き方の問題(が悪いの)でしょうか?
※バッチを直起動しても、タスクから起動しても結果は同じです。
※SELECT文で確認すると、削除対象レコード件数は約230件です。
>>116 SQL の書き方か、設定に問題があるってことだろ・・・
クエリアナライザ(って言わないんだっけ)で流してみるとか、いろいろ調べられるだろうに・・・
>>116 >Delete from [table] where id=xx
[table]の部分は文字通り括弧をつけてるの?
括弧をつけないか、
もしつける理由があるなら
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET CURSOR_CLOSE_ON_COMMIT ON
SET ANSI_NULL_DFLT_ON ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET IMPLICIT_TRANSACTIONS OFF
を先に指定して "" で囲むで試してみて。
119 :
116:2009/02/17(火) 23:32:10 ID:/8iwrAGl
>>118 テーブル名に括弧は付けてません。
SQL文の記述は正確に書くと以下の通りです。
use DatabaseA
delete from tableA where id=××
delete from tableB
go
SQL文をダブルクリックし、ManagementStudioから実行すると正常処理されます。
なので、バッチの記述がまずいのかなと思います。
「sqlcmd -u[ユーザー] -p[パスワード] -d[DataBase] -i d:\Delete.sql」
これでは、クエリが実行されないのでしょうか?
ほんと、脳みそあるんか?
クエリをばらしてみるとか、いろいろ試せるだろうに・・・
>「DELETEが失敗しました。次のSETオプションには不適切な設定
>’QUOTED_IDENTIFIER’があります。
とりあえず、こうメッセージが出てるならSETオプションを設定してみるもんだろ。
SETオプションのデフォルトがクライアントによって代わるのが
SQLServerの奇妙な特徴なんだからさ、
SQLCMDとManagement Studioで違っていても不思議でない。
mssql2008のsqlcmdのtimestamp列の表示がバグってるのはまだなおってないな。
1> select id, data1, timestamp from test1
id data1 timestamp
----------- ---------- ----------
19 aaaaaaaaaa 0x00000000
30 aaaaaaaaaa 0x00000000
こうすれば対処は出来るんだが、早くなおしてほしい。
1> select id, data1, convert(char(18), convert(binary(8), timestamp),1) from test1
id data1
----------- ---------- ------------------
19 aaaaaaaaaa 0x00000000000007E4
30 aaaaaaaaaa 0x00000000000007EF
124 :
114:2009/02/18(水) 14:40:31 ID:???
>>115 はい、TCP/IPも設定してあります。
CD不良の可能性も考えているんですけど・・・・
引き続きよろしくお願いいたします。
初めて開発で触るSQL Server。
開発端末にはSQL Server 2005 EXPRESSしか入ってなくて
Visual StudioもSQL Profilerもない。
そんな環境でT-SQLで書かれた長大なストアドの開発とテストをしなきゃならない。
UNIX+Sybaseとかでシェル環境しかないのに比べれば便利なはずなんだが…
どうやってデバッグしたらいいのか想像もつかない(´・ω・`)
やっぱりデバッグ用PRINT埋めまくるしかないのかなぁ…
事務処理(販売管理や会計など)のシステムはVBとC++のどちらがいいでしょうか?
DBはオラクルとSQLServerどっちがいいでしょうか?
規模による
C++ Builder とオラクルといておきましょう
>>125 management studioは別でDLできるぞ
132 :
125:2009/02/20(金) 00:08:37 ID:???
>>131 マジっすか!EXPRESSじゃなくて?
あとで探してみます…
ところで、ちょっとスレチかもしれない質問なのですが、
timestampなどのバイナリデータも表示&出力できる
フリーのDB開発環境ツールってないですかね?
黒猫もA5SQLもそこだけが不満で…(´・ω・`)
>>132 Expressだよw
Management Studio "Express"
Windows2003 EnterpriseでSQL Server2008 Developer
Core2DuoE6700でメモリ4Gつんでるんだけど
/3G /PAE
/PAE とAWE
/PAE
どういうふうにすれば4G全部使ってるくれるの?
全部試してみたんだけどタスクマネージャではどれも3G程度までしか
増えなくて4G使い切ってるかどうかいまいちわかりません
/3Gの分はタスクマネージャに出るが、PAE/AWEのは使ってても出ない。
パフォーマンスモニタで調べられたと思う。
自分のPCで環境作って開発してるのを
レンタルサーバのデータベースに移したいんだけど
テーブルのデータを元にそのデータを挿入するような
sq; 生成させたりする方法ありませんか?
動的SQLとかCSVに吐いてPerlスクリプトに喰わせるとか?
今更気がついたが
'20090228'って文字列
isdate関数にかけると1:True返すんだな
いちいちCONVERTしてたよ
'2009'とか'14:58'とかでもTrue返すんジャマイカ?
SQL Server2008
インデックス張ってあるnvarchar列に対して
Like '%12ABC%'
実行プラン見てみたらインデックスSeekで処理されていた
結果行数がある程度多くなってきたらインデックス使わずに
PrimaryKey見にいくようです
Likeで最初に % あったらインデックスは使われないと思ってたけど
どっかソース知ってる人いない?
>>141 本当にseekしてます?
単にindexをスキャンしてるだけではないの?
>>142 あらためて確認しましたが
IndexSeek(non clustered)ですね
結果件数は5件 検索対象は40万行
結果件数が多いと変わるのは統計情報
見てるからだと思う
>>141 インデックスを一旦削除してもう1回実行してみるんだ。
それで速くなったらインデックス見にいったけど意味なかったってこと。
>>144 やってみた
インデックスを消したら主キー(ClusteredIndexのScan)になって
遅くなった
インデックス貼り直したらnon clustered indexのseekではやい
効果あるみたいだ
前方一致のLIKE検索ならインデックスが有効って話を聞いたことがあるんで、
まず前方一致でインデックス使って、件数が減ったとこで後方一致で
減った件数に対して全件走査...とかやってるのかと妄想してみたりw
オプティマイザの詳細な動作なんてどこもあんまり公開してない気はするなぁ
よく考えたら
>>146のやり方じゃダメじゃんw
前方一致だと、インデックスの範囲検索できるんで有効なんだが、
中間一致や後方一致だと、結局インデックスの全件走査が必要、ってのが
よく言われる話なんだが、さがしてみるとこれもソースが案外みつからねえw
単に主キーによる全件走査より、インデックスによる全件走査の方が早い、って判断か
IndexSeekの40万行って、全件走査の件数?
なるほど、部分一致検索を行う度にSqlServerが統計とってる訳ね。
つまりより多く使われる部分一致検索語ほど高速に処理されるようになる訳だ。
スマソ、皆さんの知恵を拝借させて下さい。
SQL Server2000のレプリケーション機能でバックアップを
とろうと思うのですが、スキーマの動的生成(create)・消滅(drop)がある
システムなので難航してます、、、orz
やっぱりsp_addarticle/sp_addsubscription するしかないのでしょうか?
SQL SERVER 2005 EXPRESSを2台のPCに入れ
でリンクサーバでつなぐことは出来るのでしょうか?
152 :
NAME IS NULL:2009/03/06(金) 17:50:25 ID:HmvzEspX
SQL Serverにトランザクションログをとらないで
ダイレクトにデータをテーブルに入れる方法ってありますか?
OracleのSQL*Loaderでダイレクトインサートするイメージです。
ちなみに、データが不正で挿入側のテーブルが壊れても問題ないです。
>>154 BCPだとトランザクションログとらないんですか。
知らなかったです。ありがとうございます。
MySQLからのデータ移行を行うのですが
データ量が多すぎて困っていました。
復旧モデルがシンプルならわかるがフルでログとらない状況ってあるのか?
リカバリできなくなっちゃうじゃないかw
>>157 BCPつかうとリカバリできなくなるからすぐフルバックアップとれと教えられたことがあるんだが...
いまのバージョンだとBCPつかっても復旧モデルが完全だとログとってるみたいだな
BCPでログとらないようにするには復旧モデルを一括ログにする必要があるらしい
それでも最小限のログはとってるらしいが
SQL2000でSQL2000でビューを作成したときにビューに対してUpdateがかかると、
元のテーブルも連動して変更されちゃうんだけども
ビューって読み取り専用にして作ることって不可能?
読み取り専用ならUpdateかけなきゃいいじゃない
VIEWにアップデートかかることを初めて知ったw
今まで思いもつかんかったわ
UPDATE権限はずしとけばいいでしょ
SQL Server2005から2008にアップグレードした
ユーザーDBを互換性レベル90から100にしたんだけど
masterも90になっててこれって100にしても問題ないかな?
165 :
NAME IS NULL:2009/03/17(火) 16:10:24 ID:lN95GDU1
DB管理やSQLの作成は何を使ってますか?
ManagementStudioは大概の事が出来てよいのですが、
重かったり、細かいことができずに困っています。
一番困っていることはインスタンス/DB/スキーマ間でのオブジェクト比較。
できれば差分のスクリプトを出力してくれると助かるのですが。
あとはSQLの作成と自動整形。
ManagementStudioのインテリセンスは動いたり動かなかったり動作が不安定ですし、
大量の選択項目がある場合は何分も止まったりします。
また作ったSQLを整形してくれないので、手動で整形する必要がありますが、
規約を作っても人によって整形が異なり、大人数のプロジェクトだと難儀です。
テンプレートを配布すると、それにしたがって整形してくれるツールはないでしょうか?
それ以外にもテーブルに別名をつけてもインテリセンスが効くとか、
from句のテーブルを右クリックすると定義が呼び出せたりすると便利なのですが、
なかなかそこまでできるツールはないですかね。
(別名でインテリセンスはA5M2でできた)
Oracleでは上記の要件を満たすツールがあったのですが、
SQLServerではどんなツールがありますでしょうか。
ObjectBrowserは使って見ましたが、SQL作成整形はそれなりに満足でしたが、
オブジェクト比較は差分がわからず、いまいち(そもそも遅すぎる…)でした。
WindowsUpdateか何かで再起動した際に
SQL2000のSQLサーバーエージェントが動いてなくて
バックアップが動いてなかった
12日から気がつかなかったんだが何もなくて良かった
しかし、エンタープライズマネージャの
DB右クリックのすべてのタスクにある
データベースのバックアップの画面に
バックアップのスケジュールを設定する項目があるんだが
この項目は設定しても次に開くと設定したスケジュールが消えているのが難点だな
どこかに保存されてるのを確認できないのだろうか?
無料でログ解析できるツールを探しています。
できれば、動作しているDBからではなく、バックアップしておいたLDFファイルから
解析できるようなツールが欲しいです。
環境は、SQL Server2000です。
168 :
166:2009/03/19(木) 11:41:12 ID:???
自己解決
ジョブのところにバックアップジョブがたくさん並んでました…
おそらくボタン押しただけ作られた…
169 :
NAME IS NULL:2009/03/19(木) 13:03:03 ID:oZhehOtm
SQL SERVER 2005で
SELECT MAX(HOGE)
FROM HOGEHOGE
GROUP BY HOGE
の
MAX(HOGE)
をスカラ関数の帰り値として返したいのですが
作り方がわかりません。
CREATE FUNCTION GetMaxValue(@jou int)
RETURNS int
AS
BEGIN
DECLARE @res int
SET @res= SELECTーーーー ←ここが不明
RETURN(@res)
END
ここまではなんとなくわかるのですが・・・・
SELECT @res = MAX(HOGE) 〜
になるのかな
ただ
SELECT MAX(HOGE)
FROM HOGEHOGE
GROUP BY HOGE
の
MAX(HOGE)
これって複数行返さない?
>>170 説明不足失礼しました。
該当のSELECT文は本来WHERE区が指定してあり、結果が一件であることが保障される条件が入っています。
tempdb がディスクに書かない設定ってなかったっけ?
かなり昔はtempdb in RAMって設定があったけど、
最近のバージョンでは廃止された気がする
ほんとだ 7.0 にはあったんだ
x64 だけでもいいから復活しないかな
16Gとか積んでramdiskにtempdbいれてみたら?
177 :
NAME IS NULL:2009/03/21(土) 14:19:44 ID:zVELeOZw
SQLSERVERでの繰り返し処理で後判定になるやり方はありますか?
DO
処理内容
LOOP 判定条件
これだとうまくいきません。
178 :
177:2009/03/21(土) 14:39:43 ID:zVELeOZw
永久ループを作るか後判定ループを作りたいんですが、
SQL SERVERでは出来ないんでしょうか?
判定条件を書かなきゃ無限ループになるんじゃね?
180 :
177:2009/03/21(土) 15:02:52 ID:zVELeOZw
判定条件で
WHILE (1),
WHILE TRUE,
WHILE 条件なし,
いくつか試してみたんですがだめでした。
初歩的な質問ですみません。
while 1 = 1
182 :
177:2009/03/21(土) 16:57:27 ID:zVELeOZw
損害の補償してるのは金原っておしまいでしょ
Intel SLCのSSDに変えたら速すぎてワロタ
まさに別世界
185 :
NAME IS NULL:2009/03/23(月) 21:24:14 ID:YTrSpyIh
初心者で、質問です。
外部キーの作成方法についてです。
A表のa列をB表のa列とb列から参照できるようにしたいのですが、作成方法が分かりません><
B表のa列とb列は複合主キーです。
B表のa列とb列を元にA表のa列を自動採番します。
どなたか教えて下さい!
>>185 どのタイミングで作りたいのかわからんが、Bテーブルinsert時ならtriggerでも使えば?
B表の主キーはaとbで
B表に1レコードつくるごとに
A表に1レコードできる。
A表の主キーはaで、レコード作成時に自動採番される。
A表のaとB表のaは同一の値では無い。
てこと?
どうやってA表とB表をJOINするのさ。
>B表のa列とb列を元にA表のa列を自動採番します。
ってのが意味不明
通常DBで自動採番っていうのは、システムが勝手に値をセットするってことだ
A表のa列は、B表から参照されるのだから、まずA表を自動採番で値を設定し、
その値をB表に登録するのが通常の順番だろう
あとB表のa列とb列から参照ってのは、a列の参照とb列の参照という、二つの参照があるのか?
a列bと列の組み合わせでA表を参照したいのか?
まずテーブルレイアウトを晒してみた方がいいんじゃないか
189 :
NAME IS NULL:2009/03/25(水) 21:44:13 ID:/eYvExmT
下手な説明でスミマセン
A表のa列は、B表のa列とb列を足した値を格納します。
<例>
B表
a:2009 b:0001
↓
A表
a:20090001
といった感じです。
Management studioで出来ますか?
制約つけなくてもいいんなら、いくらでもできるだろ
そんなテーブルいらんだろ。<A表
sqlで解決すればいいだけ。無駄。
>>191 A表にほかにカラムがないなら、たしかにそんなテーブルいらないな
>>189 テーブルレイアウトさらせってのは、用途がわからんし実際の使用法を晒せってことだったんだが
a列とb列の組み合わせで参照するのならば、A表にもa列とb列を持つのが妥当だな
テーブルの項目を合体させたり分解したりしないといけないのは、基本的に設計が間違ってる場合が多い
B表に代替キーをつくるのも検討すべきだな
そしてここまでSQL Serverかどうかは関係ないなw
で、Management studioで何をやりたいんだ?
193 :
167:2009/03/27(金) 11:41:28 ID:???
「sarasa」と「SQL Log Resucue」をつかってみたんだが、
両方ともバックアップファイルから解析することができない・・・
バックアップファイルからログ解析できるツールを知ってたら
教えてほしいです。
Ver:SQLServer2000
ログはログファイルに書かれるんだけど
単純復旧モデルでもなければログファイルのログはすぐにあふれるよ。
ログファイルをアーカイブしたものがバックアップログ。
MSSQLは末尾バックアップし忘れで泣きを見ることが多いんだよね。
>>196 先にVisual Studio (Expressを含む) をインストールしたとか記憶ないかい?
198 :
196:2009/03/28(土) 16:28:37 ID:???
はいインストールしてます
C#使い始めです
どうすればいいんでしょう?
だったらインストール済み。なんもせんでいい。
設定を変えてインストールしなおしたいんだったら、
コントロールパネルから導入済みのSQLServerを削除すればいいよ。
200 :
196:2009/03/28(土) 16:40:14 ID:???
C#の画面からいけそうですがよくわからないです
SQL Server 2008 Management Studio Basic
これ使いたいのですがインストールされてないですよね?
プログラムファイルズやコントロールパネルに見えてなければインストールされてないよ
まねじめんとすたじおべーしっくん
だけで配布されたいたような
203 :
NAME IS NULL:2009/03/31(火) 01:16:34 ID:E2km0xVM
助けて下さい。
SqlSsrver2008Dev のインストールで躓いています。setup.exe を起動し進めていくと、各要件を満たしているかチェックされるところで、再起動がされていないと、蹴られてしまいます。もちろん再起動も、もう何回も行ないましたし、電源の入れ直しも行ないました。
OSはXPsp3で先にvs2008sp1までインストールは完了してます。(もちろんsqlserver2005expressは入れてません)
Windows自体がおかしいのかと疑っています。
他の端末(ハード構成は全く違いますが。。)ではすんなりインストール出来たので。。
>>203 Windows Update(いまはMicrosoft Updateか)は少なくとも必須項目だけはすべてやってみた?
レスありがとう。
色々調べて結局、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
の値を消してインストールでいけました。
インストール途中で別の警告(Windows Update必要)が出ましたが、とりあえずインストール完了。
>>204 さんの仰る通り、今Windows Updateしてます。
スレ違でこっちに引っ越してきました。
データベースダイアグラムっていままで使用せずに来ましたが、
これって使うのが一般的ですか?
例えば、伝票ヘッダテーブル・伝票明細テーブルがあったとして、データベースダイアグラムしておくと、
ヘッダテーブルのレコードを削除すると、そのレコードに対応する明細テーブルからも自動的に削除される
って認識でいるのですが、なんか使いにくい気がしていつもコードからヘッダテーブル・明細テーブルを削除
しにいってます。
個人的には2つのテーブルのデータを引っ張る時は、JOINすればいいし、関連するデータを削除するには
順次削除しにいってますが。
どうなんでしょうか。
みなさんは必ず使ってます?
>>206 リレーションシップの事言ってるんだよね?
親子間の制約付けたい時なんかに使ってるよ
>>206 自動で子データが消えるとかは設定で出来るんじゃ?
うちは親データを子データが参照してる場合消せないようにしておくとか防御的な意味合いで使ってる。
削除とかは1トランザクション内で、子データ→親データの順で消したりしてるけど・・・・
>>206 私は基本的に使ってるよ。
使っておいた方が後から見たときや、他人が見たときにデータの関係が分かりやすいから。
あと、自分のコードが信頼できないのもある。
使うべきかどうかはアプリによると思うよ。
DBに接続するアプリが一つの場合は好きなようにすれば良いと思う。
接続するアプリが複数あって、使うモジュールもバラバラの場合は、使ってないと安心して眠れなくなる。
Linq to SQLなんかだと参照する手間が大幅に省けるし、依存関係もわかりやすくなるから積極的に使った方がよい
>>207・208・209・210
ありがとね。
これからはちょっと使ってみます。。
重ねて質問。
伝票テーブルと明細テーブルみたいに親子関係ならリレーションシップ使ってみようと思うけど、
明細テーブルと商品マスタテーブルみたいな組み合わせでリレーションシップしたらまずいよね?
商品マスタの商品コードや単価等変更・削除される可能性があるので。
>>211 マスタ更新の際に整合性が保てなくなるのを避けるためにもリレーションシップを張るよ。
商品マスタにない商品を明細に登録されたり、明細に使われている商品マスタを削除されたりしたら困るので。
>>211 明細データがあるのに削除可(親殺し)は論外だろ。
商品マスタの検索から除外したいのなら検索対象フラグでも持てば?
SQL2008をインストールしたら
PowerShell もついてきた
なにこのアナクロな感じ
>>212 >>213 ありがと。
じゃあ、通常全てのテーブルをデータベースダイアグラム使って繋げています?やっぱりテーブルによりけり?
>>212 でも、ある案件では1〜2年周期で商品コード使い回しってのもあった。
商品コードは同じだけど、単価や商品名称は変わってしまう。
また、別の案件では、明細エントリ時に未登録の新商品の入力があったりしたり。。
>>213 >明細データがあるのに削除可(親殺し)は論外だろ。
もちろん論外ですけど、商品コード使い回しってのもあったので。。
リレーション張ると
データの作成順序が固定されたり
更新作業に時間がかかったりと
デバッグが割と不便になる
張るのはDB設計終わってからで良いんじゃない?
むろん完全なDBあってからこそのアプリ設計ではあるが
>>215 テーブルによりけり。
テーブル同士の整合性を気にしないデータなら別に張る必要ないし、むしろ張っちゃいけない。
>>216 >リレーション張ると
>データの作成順序が固定されたり
>更新作業に時間がかかったりと
>デバッグが割と不便になる
>張るのはDB設計終わってからで良いんじゃない?
なるほど、そうですね。
>むろん完全なDBあってからこそのアプリ設計ではあるが
そうなんですよね。でもうちでは大概、DB&アプリの設計及び開発が同時進行っていうのが現実です><
>217
そうだと思います。
でも、各テーブルって通常は主キーやINDEX設定しているので、全てのテーブルを繋ごうと思えば
繋げてしまえると思うのですが、その部分で繋ぐ・繋がないって判断が難しいと思います。
トリガー使ってる?
設定しておけば履歴テーブルとかへの自動Insertなど便利そうだが、
メンテナンス時等にトリガー切らずに不意にテーブルさわってしまって、
履歴テーブルがぐちゃぐちゃになりそうで怖い。
年周期でマスタのデータが変わる場合商品に有効開始〜終了年月日
明細にその時の年月日を入れるとかじゃね?
SQLServerの活発なコミュニティってどこ?
公式のフォーラムとかさびしすぎるんだけど。
ご存知の方がいらっしゃったら教えて下さい。
例えば500MBのデータベースがあって、400MB分のデータを削除しても
圧縮を行わなければデータベースのサイズは500MBのままだと思いますが、
このデータベースをバックアップした場合は実データの100MBの部分のみ
がバックアップされるのでしょうか?それとも空き領域を含んだ500MBが
そのままバックアップファイルとなってしまうのでしょうか?
>>223 多分前者。
250(使用)/300(全体)GBくらいのDBバックアップしたら210GBくらいだったから。
まぁ試してみたら。
実のみ
223じゃないが追加で聞いていい?
そのバックアップを復元したら、
データファイルのサイズっていくつになるんだろ?
やってみりゃいいじゃん
★教えて君五大要素★
1 読まない (文盲)
2 調べない (能なし)
3 試さない (発想力欠如のアホ)
4 理解力が足りない (馬鹿)
5 人を利用することしか頭にない (死ね)
YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね
/ \
【探した?】 NO → なら、ねぇよ
\
NO → 死ね
229 :
NAME IS NULL:2009/04/08(水) 09:52:10 ID:cu+RyGlg
sqlserver2005で質問です。
プロシージャ内のselect文で、
whereの中にif文かcase文を入れて動的に検索条件を変えたいのですが構文エラーになって
上手くいきません。insert文ではcase文を使うことが出来たのですが、
select文に使うことが出来ませんでした。
sqlserver2005ではselect文使うことは出来ないのでしょうか?
とりあえず、書いたものをさらしてみな
231 :
NAME IS NULL:2009/04/08(水) 10:48:43 ID:cu+RyGlg
select
*
from
table
where
if 条件
begin
抽出条件1,
end
else
begin
抽出条件2,
end
こんな形で書きました。
よろしくお願いします。
つ sp_executesql
if 条件
begin
select ... 抽出条件1
end
else
begin
select ... 抽出条件2
end
でいいんじゃないか
234 :
NAME IS NULL:2009/04/08(水) 14:27:43 ID:cu+RyGlg
>>233 今回したい処理は
select
ID ,
項目1,
項目2
where
if ID = 1
項目1 = '○',
else
項目2 = '△'
from
table
省略して書くとこんなことがやりたいです。
今回のものだと、andとorを組み合わせれば何とかなるんですが、
条件が多くなってくるとかなり不恰好になりますし、
長い文を書くことが多いのでこの機会に知っておきたいです。
>>232 ありがとうございます。
試してみます。
ああ、その条件ってのもテーブルの項目なのか
それなら、俺ならこう
select ID,項目1,項目2 from table where ID=1 and 項目1 = '○'
union
select ID,項目1,項目2 from table where ID<>1 and 項目2 = '△'
連投ですまんが、
>>235で自分の書いたの見てたら、普通に
select ID,項目1,項目2 from table where
(ID=1 and 項目1 = '○' ) or (ID<>1 and 項目2 = '△' )
で良いんじゃないかとおもた
237 :
NAME IS NULL:2009/04/08(水) 21:14:02 ID:y8zGP7vT
>>236 >今回のものだと、andとorを組み合わせれば何とかなるんですが、
>条件が多くなってくるとかなり不恰好になりますし、
>長い文を書くことが多いのでこの機会に知っておきたいです。
>>234はこう言ってるんだが・・
>>236で長いと言われたらかなりモニョってしまうが…
傍目だが、サブクエリやcase文使っても
>>236より短くはできないと思うよ。
だから条件が多い、って一点だろ
条件が多いならsp_executesqlで組み立てたほうがパフォマンスもましになるんでないか?
where 句で case は使えないから、動的に SQL を組み立てるしかないよ。
いいぞ もっとやれ
244 :
235:2009/04/09(木) 00:26:48 ID:???
あくまでもストアドの中で、って考える
>>240 どんなに長い条件でも通常のストア度内なら事前評価できる以上、
動的SQLが速度的に有利になることはないと思うが
>>242 動的っていうがな、行ごとに条件を変えろってことだろう
行ごとにSQLつくるのか?
まあ、あのSQLが気に食わないっていうなら、selectしてどうしたいかだが
俺ならカーソルまわして行ごとに判定して処理するな
…というか、サブクエリなり共通テーブル式なりを使って
同じ条件になるもの同士を分けてから処理すればええやん?
where句にcaseは使えるよ。
だけど、検索条件が複雑なら動的SQLが無難じゃない?
俺はカーソル使うのは最後の選択だと思ってるけど
最近のSQL Serverはカーソルでも性能でるの?
andとor駆使して書けるなら、性能気にするなら素直にそうするべきだとおもうがな
動的SQLも事前評価できないんだから、パフォーマンス的には不利だろ
俺はストアドの中で動的SQLなんて保守性の悪いことはやりたくない
動的SQL使うなら、アプリケーション側で動的に作って投げろよと
じゃないなら、SQLが長いとかいうならもうカーソルでやれと
つか、速度気にするようなとこで使ったことないけど、カーソルそんなに性能わるいのか?
>>249 ありがちな例だと
顧客名の検索で条件ありで絞込みだけど条件なしだと全件欲しい場合
where @parm is null or ( @parm is not null and 顧客名 like 'ユニクロ%' )
こんな条件がいっぱいある場合だと動的SQL組み立てたほうが速い
まぁプラン確認すればわかると思うけど
SqlServer2005内のあるデータベースのバックアップファイルが
2.5GBもあったんでLHAで圧縮してみたら300MBになった。
これってバックアップ時に自動圧縮する方法ってないんかね?
いちいち圧縮ツール使わなきゃならんのがめんどくさすぎ。
>>251 2008ならバックアップ圧縮できるよ
うちは2.5Gのmdfが400Mくらいになった
>>250 動的SQLつくるなら、ストアドのなかでやらずに呼び出しアプリでやれ、ってのが
俺のスタイルなんだが...
実行時のプランはデータ次第だろ。
コンパイル時間の差がでるだろうと思うんだが、気ならない程度なのかもな
気になるのはカーソルの性能なんだよ。SQL Serverはカーソルの性能悪いって話はほかでも聞いたことある
カーソル使うぐらいなら一時テーブル使えってのがSQL Serverのセオリーだと言われたんで気になってる
>253
カーソルは存在を忘れろ。SQLServerにカーソルなんか存在しないと思え。
カーソル使うくらいならかなり複雑になってでも1つのクエリで何とかした方が圧倒的に速い。
複雑になってメンテ性が悪かったり予想外な実行プランが動くようなら一時テーブルを使った方がいい。
その分カーソルの機能は豊富だけどなぁ…
いかんせんOracleでいうところの%ROWTYPEがないのが辛い
%ROWTYPEは確かにあると便利だが、テーブルレイアウト変えたら結局は
プロシジャ周りも見直すし、データ型わからずにプログラミングすることはないから
あるとちょっと便利ぐらいだと思うんだ。
それよりも、貧弱な流れ制御を何とかしてほしいぜ
あとトリガのeach row もほしいのう
257 :
はじめまして:2009/04/12(日) 18:04:02 ID:OimHvFj0
客先がたまたま中国系で、中国式の「?」とか「?」の文字を打ち込むと
フォーム上で「#Delete」と表示され変更も削除もできません。
MS-ACCESSからリンクテーブルで使用していて、項目が主キー項目の時
この障害が出ます。
クライアントサーバ間のコード変換時、上記文字に対応していないので
レコードの特定ができないようです。
属性はnvarcharです。
試しにvarcharにすると、入力後「??」となり表示もできません。
日本語の「内」「紅」なら問題ないです。
SQLServer2005sp3 + MS-Access2003sp3です。
ManagementStudioでは問題なく更新できます。
オートナンバー型の主キーを追加するしかないのでしょうか?
SQLserverもAccessもユニコードなので無変換で通して欲しいところです。
何かヒントになるようなことでもご存知の方は教えてください。
258 :
はじめまして:2009/04/12(日) 18:06:33 ID:OimHvFj0
あらら、ここでも化けてしまいましたね。
「うち」という字と「くれない」という字の中国式の字です。
そりゃクライアントの問題だろ。
変換して欲しくないなら止めればいいのに。
ACCESSだからだろ
261 :
NAME IS NULL:2009/04/12(日) 20:58:53 ID:UP5C1RP7
>>257 オートナンバー型の主キーを追加するしかないのでしょうか?
access<->postgresでリンクはって更新する場合のfaqだと思った
#確かaccess(or jet)の制限じゃなかったかな
ぐぐれば、それなりに詳しい説明がみつかると思う
262 :
はじめまして:2009/04/13(月) 12:50:26 ID:DY1wwZsV
返答ありがとうございます。
Postgressの場合、Text型の主キーで問題が出るようですね。
こっちは、特定の文字コードの問題なので、ちょっと違う気がします。
Oracleの時は NLS_LANG をサーバとクライアントで一致させると無変換で通してくれたんですが、SQLserverはまだ初心者なので良くわかりません。
もうちょっと探してみます。
collateでぐぐれ
>>226 >223じゃないが追加で聞いていい?
>
>そのバックアップを復元したら、
>データファイルのサイズっていくつになるんだろ?
元の大きなサイズになります。
つい先日実証済みです。
265 :
NAME IS NULL:2009/04/15(水) 01:33:06 ID:rxfCpmI0
インテグレーションサービスの教科書ない?使いにくいよう。
>>265 MSにPDFの自習書はあったけど
インテグレーションサービスは取り込み列の編集が超ウザクて
あまり使ってないな
1回こっきりとかのはすごい楽でいいけどな
SSISマジ糞
268 :
本田:2009/04/16(木) 08:32:05 ID:/yuQiPs+
269 :
NAME IS NULL:2009/04/17(金) 00:04:41 ID:FTX483rx
あの列の編集、エクセルのオートフィルみたいにやりたいんだがな。開発者はDB屋でBI屋じやないな。
270 :
NAME IS NULL:2009/04/17(金) 10:39:36 ID:mgILyPPd
271 :
NAME IS NULL:2009/04/17(金) 19:49:44 ID:FTX483rx
リポーティングサービスの入門書出たね。インテグレーションサービスのも出して。
273 :
NAME IS NULL:2009/04/18(土) 15:11:01 ID:/iDls0PF
Amazonに出てるよ。
実践Microsoft SQL Server 2008 レポーティング入門 (マイクロソフト公式解説書)
買ったよ。でもねぇ、Integration ServiceがちゃんとしないとReporting
なんかできないんだよね。
別個の機能と認識してるけど理由は?
生データをDHに加工して入れるのがISで、
そのDHを参照するのがReportingServicesだからでは。
276 :
NAME IS NULL:2009/04/20(月) 08:36:47 ID:eacEvpWD
生データをリポートはやらんだろ。ISのマニア向け誰か書いてよ。
ゴメン、普通キューブって生データであるファクトと
ディメンションから成ってるはずだけど。
捉え違いしてたらスマン。
278 :
NAME IS NULL:2009/04/20(月) 20:19:30 ID:eacEvpWD
ファクトはクリーンにしなくていいの?たまーにゴミをいれるユーザー共いるからな。
マイクロソフトプレスのサイトを見ると、
実践 SQL Server 2008 レポーティング入門
の次に、
実践 SQL Server 2008 データ統合 & 分析入門
が発売予定になっているから、
期待できるのでは?
280 :
NAME IS NULL:2009/04/20(月) 21:43:26 ID:MSnl+/1s
期待するよ。ある現場だと顧客管理がAcccess形式で担当者のサーバに
保存されてる。あらゆるログがそこらのサーバにCSVで落ちてて、
取引DBはオラクルで保存されてる。詳細なデータ統合本がほしいね。
巡回ゴミ収集&データのリサイクルを知りたいよ。
281 :
NAME IS NULL:2009/04/20(月) 23:32:59 ID:MSnl+/1s
オラクルがSunを買ったと。
どーなるDB戦国時代?SunはMysql持ってるし。
MySQLスレは祭と葬式入り混じってるな
どちらにしろJAVAとORACLEの親和性が高くなりそう
.netとSQL鯖みたいに
284 :
NAME IS NULL:2009/04/21(火) 18:53:32 ID:qA6w2rnR
オラクルのETLよりISのほうがまともに見えるのアタイだけ?
SqlServer2005にはSqlServer2000のデータ変換サービスみたいのはないの?
MDB(Access)のテーブルとデータを丸ごとインポートしたいんだが。
アクセスならアップサイジングウィザードで良いんじゃね
SSIS。DTS も一応互換性のために残ってる。
Access データベースのアップサイ
http://office.microsoft.com/ja-jp/access/HP052730091041.aspxジングについて アップサイジングは、一部または全部のデータベース オブジェクト (データベース オブジェクト
: テーブル、クエリ、フォーム、レポート、ページ、マクロ、およびモジュールなどのオブジェクトを含むアクセス データベース。
Access プロジェクトには、フォーム、レポート、ページ、マクロ、およびモジュールなどのオブジェクトが含まれます。)
を、Access データベース (データベース : 何らかの関連性を持ったデータの集まり。
データベースには、個別の項目 (社員や注文など) に関する情報がテーブル、レコード、およびフィールドに分類されています。)
(.mdb) から、新規または既存の SQL Server データベース、または新規の Access プロジェクト
(Access プロジェクト : Microsoft SQL Server データベースに接続し、クライアント/サーバー アプリケーションの作成に
使用する Access ファイル。プロジェクト ファイルには、データやデータ定義を基にしたオブジェクト、つまりテーブルやビューなど
は含まれません。) (.adp) に移行する処理です。
生年月日から年齢を取得したいのですが
下記SQLでは
SELECT DATEDIFF(YEAR, CONVERT(DATETIME, '19740605'),CONVERT(DATETIME, '20090423'))
35が得られます。
年齢としては34が正しいのですが、このような簡単な式では
正確な年齢は求められないのでしょうか?
すみません。ぐぐったらありました。
291 :
NAME IS NULL:2009/04/23(木) 17:46:37 ID:cXNPfnaF
>>285 データ&テーブルだけなら、odbc 使ったExport(違
292 :
285:2009/04/23(木) 18:15:26 ID:???
293 :
NAME IS NULL:2009/04/23(木) 18:53:00 ID:rto0+CZm
ディベロッパー版くらいカイナヨ。
デベロッパー使うと express に戻れなくなるが
戻る必要ない
本番環境のこと考えてるか?
298 :
NAME IS NULL:2009/04/24(金) 01:20:03 ID:KmE8AsPn
テストやお勉強なら開発版でいいはず。テストマシンで本番危険でしょ。
スタンダード以上はクソ高いからな。特にライセンス料がヒドス。
永遠のベータ仕様
ユーザはいませんがテスト参加者ならいます
大企業で導入の決済書にハンコを押す上層部の人間は
低価格が低性能で高価格が高性能なんだろ?程度の認識しかないことが多いからな。
ボラクルに負けない程度のボッタクリ価格を設定したラインアップも用意しとかないといけないんだよ
うちは「Microsoftだから、まぁ大丈夫じゃね」ってノリだったな<ハンコ持ち
何が大丈夫なのかはもちろん誰も知らない
303 :
NAME IS NULL:2009/04/24(金) 14:34:12 ID:KmE8AsPn
オラクルよりボッタはないでしょ。移行してコスト下がったよ。
そんなあなたにクラスター爆弾
305 :
NAME IS NULL:2009/04/24(金) 23:45:45 ID:IWCiooKr
>>303 Oracle みたいなサポートってあるの>SQLServer
年間のサポート費用で とか。Oracleでいうクラウンとか
使ってもExpressなんで、そのあたりは不明
#用途的にはたまーにマルチユーザーのAccessの変わりみたいな使いかただし
#データ量が少ないから全然OK
#家での遊びはDev版だけど
プレミアサポートかな?
ボラクル・ボラクル・ルルルルルー
308 :
NAME IS NULL:2009/04/25(土) 11:38:37 ID:hd+BWyaq
MySQLのクラスター爆弾が一番良さそう。
MySQLは商用利用でもタダなのかね?
オラクルのメンテ代は異常
なんでお前らの作り出してるバグ修正するのにメンテ代払わにゃいけんのだ
>>309 無料。規定を守りたくないなら金を出す。
312 :
NAME IS NULL:2009/04/26(日) 17:55:54 ID:VIsukFUE
データ統合&分析入門買った。あまりに初心者向けすぎな内容だが、丁寧に説明してあるよ。ただ、サンプルデータ利用なんで実際はねぇ。
MSDE2000なんだけど
一緒についてくるSQLSERVERAGENTが
PC再起動したときに一緒に起動してくれないんだが
サービスを見ると「自動」になってるから起動してくれないと困る
何か解決策無い?
DBバックアップに使ってるから再起動のたびに確認しないといけない
スタート時に起動させたらいいじゃない
>>313 手動でなら動くの?
自動で起動してないなら、イベントログとかになんかエラー出てるんじゃね?
316 :
NAME IS NULL:2009/04/29(水) 13:51:44 ID:esU343oK
アカウントは?なんのアカウント設定?
なんかわろた
318 :
NAME IS NULL:2009/04/30(木) 00:42:10 ID:M48Ze8Qo
エージェントスミス
319 :
313:2009/04/30(木) 13:58:20 ID:???
プロバイダがアク禁食らってました
イベントログを見たのですが
「スタート成功」の趣旨のメッセージが書き込まれていました
アカウントはAdminです
SQL Serverを設計から使用するのは初めてなので
質問させてください。
今回クライアントの意向で私が設計したテーブル定義を
全てVARCHARからCHARに変更するように指示されてしまいました。
私はOracleの設計は何度も行っているのですが
腑に落ちなかったので理由を尋ねると
SQL Serverは文字列型を固定長にしないと
ディスクの断片化が激しくて使い物にならないからだと
言っていました。
本当でしょうか?
一応この件は保留にさせてもらって
マニュアルやいろいろなサイトを見ていたのですが
そのようなソースは見つけられませんでした。
但し、DB2の設計では常識のようです。
ご存知の方がいらっしゃたら教えて頂けないでしょうか。
また、そんなことはないと反論できるソースも
見つかられなかったので困っています。
他のと比較はしたことないんでアレだが、
SQLServer MVPだかの人がMSに寄せた記事の中で、
自動圧縮は断片化が凄まじいからオフにしろというのがあったな。
可変文字列は自動圧縮の対象なんで、つまりそういうこと。
以前セミナー行った時の講師(沖電気だったか)の人も
自動圧縮は断片化凄いんで、ちゃんとメンテするようにと言ってたな。
ウチは無視してるけど(俺含めバカばっかなんで…)。
いくらNTFSといえファイルの断片化なんて固定長でも可変長でも起きる
かりに可変長で断片化しまくりでパフォーマンスが落ちるようなDBサーバーだとしたら、固定長でも十分なパフォーマンスは出ないとおもう
SQLサーバーは基本オンメモリなのでメモリさえしっかりのせてあるDBサーバーなら問題無い
>>321 自動圧縮ってデータファイルのですか?
自動圧縮オフであれば可変長でも断片化は気にしなくて良いって意味でしょうか?
>>322 ですよね。
むしろメモリにたくさんキャッシュさせるために
無駄に大きい型とかは使用しないように気をつけるべきと思ってました。
今回の件で気になったのですが、SQL Serverは
例えばVARCHAR(10)のカラムに3バイトの文字が入っている場合でも
メモリ上は10バイト確保される仕様なのでしょうか?
Oracleは実データのサイズと可変長の場合はサイズを
メモリにキャッシュすると記憶しているのですが
同じと考えて問題ないですかね?
>>320 マスターのコード類など桁数が決まっている物は
CHARで良いと思いますが、可変長文字列などの場合は
足りない桁数分空白が入ったりしますので
プログラムのあちこちでトリムが必要になったりしますよね。
お客さんって昔のCOBOLerだったりですか?
325 :
322:2009/04/30(木) 18:38:08 ID:???
うろ覚え(というか気にしたことがなかったw)なのですが
varcharの場合は、たとえ8000にしたとしても3Bしかいれてなければ
消費量は3Bですが、ヘッダーとしてそのカラムに何バイトはいるかという情報が入るので「ヘッダー+実データ」と記憶しています
私の職場でもCOBOL移行のシステムをSQL
SERVER
でやってるのですが、テーブルデザインをほぼそのまま持ってきてしまってるため、空白の処理がめんどくさくなってしまってます
自動圧縮がONになってる場合は今さらOFFにしても手遅れですか?
あとインデックスのデフラグもやらないほうがいいと聞いたことがあるような気がします。
327 :
NAME IS NULL:2009/04/30(木) 19:28:04 ID:M48Ze8Qo
RAIDのストライプサイズを変えるのもアリ。邪道だけど。自動圧縮やめたら早くなったよ。
>>326 >あとインデックスのデフラグもやらないほうがいいと聞いたことがあるような気がします
ってことは再構築しかしちゃいかんのか。
DBCC INDEXDEFRAG を使わずに ALTER INDEX REORGANIZE を使えってのが
間違って伝わってるんじゃね?
DMVの IndexUsage 見て、へたってるようなら REORGANIZE なり REBUILD なり
した方がええよ。
CPU負荷が下がるから。
Oracle の SQL*Plus での @ や start のように、
SQL Server Management Studio 上で SQL 文の中から、
他の SQL ファイルを実行する方法を教えてください。
331 :
NAME IS NULL:2009/05/01(金) 01:37:42 ID:cXsUpyVz
テクサポ逝き。
332 :
320:2009/05/01(金) 11:13:15 ID:???
>>325 そのあたりのソースあれば説得したいのですが
ネット上にはないですかね。
・自動圧縮しなければ断片化は気にしなくて良い
・CHARだと余計なスペースまでメモリにのってしまうので
パフォーマンスが落ちる
・プログラム側で漏れなくスペースの除去処理が入るので
開発の生産性が落ちる
この辺で一旦説得してみます。
しかし、何でVARCHARが駄目なのか意味不明です。
ちなみにその人はシステム部の方なのでコボラーじゃないっす。
これは好みの差かもしれないけど
varcharよりもnvarcharをお勧めするよ
メモリ使用量は増えるけどバイトカウントじゃなくて文字数カウントできるから
>>332 そういう輩をオールドタイプと呼ぶのです。
彼らにとっては自分が長年慣れ親しんできた手法こそが唯一正しいものであり、
それと異なる概念や方法(特に新しいもの)は異質なのです。
彼らは新しい手法に全力で反対し、権威を振りかざしてシステムが(自己が完全に
理解できる)昔馴染みの作りになるように仕向けるのです。
>>332 俺も昔の記憶なんで定かではないが...
そのクライアントがいうディスクの断片化ってのは、データファイルの断片化なのか?
SQL Serverで可変長使うと断片化がってのは、
オラクルでいう行連鎖や行移行が頻発するってことじゃないのか?
まあ、その結果としてデータファイルの断片化が発生するのかも知れんが
データファイルなんて初めにある程度のサイズで割り当てするだろ
そんなちょくちょく増加されるようなら元の割り当てが小さすぎるし、
自動圧縮でも元サイズ以下にはならなかったと思うが
自動拡張や自動圧縮に頼ってサイズ見積もりちゃんとやってないだけの気がするなぁ
>ちなみにその人はシステム部の方なのでコボラーじゃないっす。
システム部でプログラム未経験、ってやつは少ない気がするなぁ
コボラーをバカにしたものではないが、ある程度以上の年齢なら元コボラーかもよ
でもコボラーは割と容量見積もりにはうるさいんだがなw
336 :
320:2009/05/01(金) 13:15:11 ID:???
>>335 まさにそれです。Oracleでいう行移行を異様に気にしているようです。
多分、何かの雑誌に載っていたのを見て
他のシステムでパフォーマンスが劣化したのは
そのせいだと思い込んでるんだと思います。
最悪は従ってもいいのですが
>>334さんの言ってるような感じの方なので
私の本意としては可変長型でパフォーマンスが劣化する
ソースを出せよと言いたいところです。
まぁ、連休明けの打合せで戦ってみます。
SQLサーバーはOSがメモリに割り当てて自動管理してるので
断片化の心配は必要ない
とでも言ってやれw
クラスタ化索引を使うか使わないか、使うなら主キーを使うか別のキーにするかとか、
SQLサーバ固有の重要な問題があるのだけど、
なぜかOracleに無い概念には疎かったりするんだよね。そういう人たちは。
>>336 >Oracleでいう行移行を異様に気にしているようです。
>パフォーマンスが劣化したのはそのせいだと思い込んでるんだと思います
いや、思い込んでるだけかどうかはわからんがなw
すくなくとも、これを気にしてVarchar使うなって言ってる相手に対して
>>332の内容で説得しようとするお前の技術レベルには問題があると思うぞ
>私の本意としては可変長型でパフォーマンスが劣化するソースを
可変長が直接パフォーマンス劣化の原因じゃなくて、行移行の原因になると思ってるわけだろ
実際に行移行が大量にあればパフォーマンスは劣化するわな
SQL Serverでは、主キーはデフォルトでクラスタードインデックスだ
そしてクラスタードインデックスのあるテーブルでは行移行は起こらない
(まあ代わりにページ分割ってのは起こりえるが)
ゆえにSQL Serverでは行移行はあまり気にする必要はない、と 俺ならこういう
参考
ttp://www.microsoft.com/japan/sql/prodinfo/compare/forOracle/SQLserver_02_Chap3_01.mspx
>>339 ありがとうございます。
勉強になりました。
正直、クラスタ化インデックスの仕様も
いまいち分かってないので
連休中に勉強しようと思います。
定期的にインデックスの再構築
インデックスの再構築をやるとDBのサイズが一気に拡張されないか?
つ SORT_IN_TEMPDB
344 :
NAME IS NULL:2009/05/04(月) 13:04:56 ID:r+nO75nf
ニュータイプなら楽勝
一度SQLserver2005をアンインストールして再インストールしてみたら、システム構成チェック時に
エラーが発生するようになってしまいました。
パフォーマンス モニタのカウンタ レジストリ値に対するシステム構成チェックに失敗しました。
詳細については、Readme ファイルまたは SQL Server Books Online の「SQL Server 2005 で
セットアップ用にカウンタ レジストリ キーを増分させる方法 (How to: Increment the Counter Registry
Key for Setup in SQL Server 2005)」を参照してください。
と出てもやり方がいまいちわかりません。
他に方法はありませんか?
346 :
NAME IS NULL:2009/05/04(月) 15:51:31 ID:r+nO75nf
SQL2005関連を全部アンインストールした?あとはレジストリも消さないと。おいらもあったよ、それ。
OSからサインストール
348 :
NAME IS NULL:2009/05/05(火) 11:53:28 ID:A7S2IK8o
子供の日だから初期化からやるんだー。
349 :
NAME IS NULL:2009/05/07(木) 12:27:17 ID:iNwK7urB
ちょっと気になってることがあるんですが聞いて下さい。
Books OnlineとかMSDNを見るのに使うDocument Explorerってありますよね、
そのBooks Onlineを開いたときのバージョン情報で、ユーザー名もプロダクトIDも
不明になってるんだけどこれ普通?
ちなみにSQLServerはExpress版だから、プロダクトIDが無いのは解るんだけど、
インストールの時名前(と会社名)は入れるよねぇ…
同じ
351 :
NAME IS NULL:2009/05/09(土) 15:34:02 ID:2Qq3YQMD
SQLサーバーの勉強をするには何を揃えればいいですか?
普通にパソコン一台あればOK
>>351 仮想環境が使えると幸せかも。
そっちにDB鯖作れば色々遊べるでしょ。
Oracle 9iのデータをSSIS経由でSQL Server2005に移行しています。
SQL Serverのvarchar型へOracleのvarchar2型のデータを取り込む際、
文字列中にWAVE DASH(〜)が含まれていると、
「テキストが切り捨てられたまたはコードページが違う」というような
エラーでインポートに失敗するのですが、何か良い対処方法はありませんか?
テーブルを自動作成してインポートする場合は、nvarchar型が自動で
設定され、上手くいくのですが、nvarcharを使うしかないってことでしょうか?
355 :
NAME IS NULL:2009/05/10(日) 01:07:24 ID:HgIDHuLj
>>353 ビジュアルスタディオ2005スタンダードをもらえそうなので、安いノートPCを買って、VS2005とSQLサーバー2005を入れて、accessVBAでアプリを作って…気が変わればオラクルに移行して…なんてやってみたい。
できるかどうかも解らないが…。
356 :
NAME IS NULL:2009/05/10(日) 01:08:17 ID:HgIDHuLj
>>353 連投すみませんが、仮想環境とはどのようなものでしょうか?
調べてからしゃべれ
>>354 Shift_JIS へのマッピング問題のような気がするから、いったん別の文字に
置き換えれば?
>> 354
>> 358
wave dash 問題?
>>354 昔やったのは一度AccessMDBに変換して
それをSQL2000に取り込む
361 :
NAME IS NULL:2009/05/11(月) 00:34:22 ID:T0fZyj1/
>>356 仮想知らないとまずいよ、あなたは。ライセンス体系から調べるべし。
362 :
NAME IS NULL:2009/05/11(月) 21:41:33 ID:7jKYx7be
>>355 AccessVBA なら VS なくてもいいよん
Admin目指さないなら、Expressでいいんでね
2005か2008かは迷うとこだけど
363 :
NAME IS NULL:2009/05/11(月) 21:47:14 ID:7jKYx7be
ついでにOracleはOTNからDLしたので、試せるしね
#OraはStandard以上じゃないとつらいわな
プログラミングado.net 見てみたら
364 :
NAME IS NULL:2009/05/12(火) 08:30:32 ID:lefX2gTD
365 :
354:2009/05/12(火) 08:34:48 ID:???
>358-360
レスありがとうございます。
ORACLEのNLS設定がWAVEDASH問題に引っ掛かっていたことが判明。
とりあえずACCESS経由で簡単に取り込みできました。
366 :
NAME IS NULL:2009/05/12(火) 12:14:33 ID:lefX2gTD
データのロードならAccessのほうが安定だね。ISが情けない。
32ビット版2005stdのmdfを64ビット版2005stdのマシンに持ってってアタッチすれば
問題なく動作するのかな?動作したとしてパフォーマンスに影響あるだろうか・・
知ってる人いたら教えてくれませんか?
>>367 バックアップと復元の動作は確認したことあるけど(問題なかった)
アタッチデタッチは試したことないなぁ…
369 :
NAME IS NULL:2009/05/12(火) 19:20:24 ID:lefX2gTD
>>367 大丈夫だよ。どっちも可能。パフォも変わんない。サービスパックのバージョンが同じにしたほうがいいかもよ。
370 :
367:2009/05/12(火) 19:34:03 ID:???
今、2005expressがインストールされているのですが、2008expressをインストールしたら、
上書きされますか?それとも、共存するのですか?
共存できる。インスタンス名はかぶらないように変える必要がある。
373 :
371:2009/05/13(水) 11:49:20 ID:???
374 :
NAME IS NULL:2009/05/13(水) 15:02:08 ID:h5MN+uNn
>>374 ポートは共有できる仕掛けがある。SQL Browserがそれ。
376 :
NAME IS NULL:2009/05/13(水) 18:39:45 ID:h5MN+uNn
>>375 おー!さすが!
変なおまけだと思ってた。
377 :
NAME IS NULL:2009/05/14(木) 21:55:46 ID:djtStumb
Microsoft SQL Server 2005
OS:Windows 2003 Server
PHP:5.2.4
PHPからMSSQLに接続してブラウザで入力した文章をDBに保存しようとしているのですが、
SQL文のサイズが大きくなると、その中の4096バイトごとに文字化けが発生したり
しなかったりします。
※文字化けは、「?(はてな)」になります。
例えば、20000バイト程度の文章だと、4096バイトごとに5箇所ほど文字化けします。
SQL Serverの設定でネットワークパケットサイズを4096からより大きな値に変更すると、
その値に応じて文字化けの位置がずれます。
この問題については、パケットサイズを大きくする回避策以外はないものでしょうか。
378 :
NAME IS NULL:2009/05/15(金) 01:43:35 ID:osyVFJci
すなおにLAMP使うべし。相性悪いよ。
379 :
NAME IS NULL:2009/05/15(金) 07:39:50 ID:jDZ1e0ZU
php<->SQL鯖はMS製の試してみたら?
#自分は使ったことないんだけど
SQLServer2008Express with Toolってのが入らない...
アンインストールしても一部残ったままだし。
XPにVB6やVS2008、SQLServer2000や2005が入った環境だと共存出来ないの?
>>380 とりあえずエスパーしてみると、VS2008にSP1が当たってないとか?
複数の言語を入れている場合はすべてに当てないと入らなかった。
382 :
NAME IS NULL:2009/05/16(土) 14:50:15 ID:zAAUCzul
>>380 あれこれやって時間かけるなら初期化のほうが早いよ。レジストリからアンインストールしてだめならの話。
>>380 どっかにインストール時のログが残ってるからのぞいてみれば?
そういや、SQL Server 2008を入れたらCatalyst Control Centerのインストールがこけて焦った。。。
なんでそんなところに影響するのかと。
385 :
380:2009/05/18(月) 11:04:07 ID:???
>>381-383 ありがとうございます。
ログに出ていたメッセージは以下のようなものです。
----ここから
Details
Product: SQL Server
ID: 50000
Source: setup.rll
Version: 10.0
Component: SQL Server Native Client
Message: A network error occurred while attempting to read from the file '%.*ls'.
Explanation
An attempt was made to install (or update) SQL Server Native Client on a computer where SQL Server Native Client is already installed, and where the existing installation was from an MSI file that was not named sqlncli.msi.
User Action
To resolve this error, uninstall the existing version of SQL Server Native Client. To prevent this error, do not install SQL Server Native Client from an MSI file that is not named sqlncli.msi.
----ここまで
SQLServerNativeClientは2005用と2008用が入っていましたので2008用のみ
アンインストールして実行したのですが同じエラーが出ました。
気になるのはExpressEditionを入れる前に単品のsqlncli.msi(2008用)を
インストールした方のPCは失敗し、入れてないほぼ同じ環境(各種開発ツールが
入っている)はインストール自体はできたという事です。
インストールできた方もManagementStudioを起動する際にmscorlib.tlbを
読み込むことができませんでした、というメッセージが出たので
これはレジストリ書き換えで出なくなりました。
>>384 CCCは.Net使ってるからねぇ
怪しいよね
えええええ、そうなのか orz
388 :
NAME IS NULL:2009/05/19(火) 15:08:59 ID:+40ai9gB
つーか 2.0決めうちにしてるとこ があるのかな?
3.5(SP1)が必要でしょ?>SQL Server 2008
389 :
NAME IS NULL:2009/05/19(火) 19:18:55 ID:+8li2zb3
初期化してきれいな体になったほうがよいよ。
SQL Server 2005 にて SQL Server Management のクエリウィンドウにてinsert文を実行して、
nvarcharのフィールドにunicode文字を格納する方法はないでしょうか?
例えばinsert into test values('Unicode文字列')を実行すると?????????となってしまいます。
テーブルを呼び出して直接入力するとUnicodeで格納されるので、
フィールドの指定方法は間違えていないと思います。
宜しくお願いします
>>390 insert into test values(N'Unicode文字列') でどうよ
392 :
390:2009/05/21(木) 15:57:55 ID:???
>>391 愛してます。抱いてください(;´д`)
串焼き
ど素人です。質問よろしいでしょうか。
現在ACCESSのmdbファイルをUNCパスフォルダに置いてクライアントが参照していますが
SQLserverのmdfファイルではこれは出来ないのでしょうか?
SQL Serverの入ったサーバー端末を一台つくり、そこのローカルディスク上から参照する形に
なるのですか?
宜しくお願いします。
SQLServerのエンジンが動いているアカウントを調べてみよう。
もっとも、できてもやるべきではないと思うけどね。
397 :
380:2009/05/24(日) 18:56:23 ID:???
>>395 SQLServerはファイル共有なDBじゃないよ。
サービスとして起動しておいてポート(TCP/1433がデフォ)を使って
他のクライアントとやり取りする。
クライアント側からOLEDBやODBCを使用してデータベースを利用するのが一般的。
398 :
395:2009/05/24(日) 20:26:10 ID:???
>>396 >>397 ご丁寧にありがとうございました。
実は趣味でC#を使っていまして、職場の業務スケジューラを
提案しましたところ、やってみろといわれまして。
今まではACCESSで細々やっていたのですが、以前から本格RDBMSである
SQLserverに興味がありまして、いい機会なのでチャレンジしようかなと。
早速一冊本を買ってきました。今後とも宜しくおねがいします。
VisualStudio + SQLServerならむしろAccessより簡単かもね
400 :
NAME IS NULL:2009/05/25(月) 01:10:42 ID:/RB6Eg77
>>398 MySQL派?まあみんなアクセスから始まるわけだな。
401 :
NAME IS NULL:2009/05/25(月) 07:56:27 ID:+IuRrIp9
>>398 プログラミングADO.NET 第2版 は押さえたほうがいい気がする
#値段分の価値はある>自分
transaction の記述は全然たりないけどw
402 :
395:2009/05/25(月) 12:53:18 ID:???
>>399 やはりそうなんですか。.NETFrameworkとの親和性が高いというのに
強く惹かれまして・・・
>>400 そうですね、ご他聞にもれず私もACCESSから入りました(入って間もないですが・・)
とういか、ACCESSを触るまでデータベース専用のシステムがあることすら知りませんでした。
しかし、データベースって設計が難しいものですね、ちゃんと仕様を決めてからでないと
やり直し工数が(いつもこのパターンです)
>>401 ありがとうございます!あの黄色い分厚い本ですよね。.NETFramework版は買いました。
ですが、私のレベルではまだ宝の持ち腐れになると思うので、暫くは「初めて」「入門」
シリーズを買い揃えたいと思います。
いつか必要なレベルに達したいと思っています。
403 :
NAME IS NULL:2009/05/25(月) 14:52:27 ID:/RB6Eg77
アクセスはアクセスで便利だよね。アクセスの64ビット版でたら最高だけど。
Access 2010 は 64 ビット版もあるらしいよ。
405 :
401:2009/05/25(月) 20:36:57 ID:+IuRrIp9
>>402 コード自体はCUIベースなので、先にやって問題ないと思う
GUIベースの本で為になった本は、あまりないんだ>自分の場合だけど
>.NETFramework
は、今の自分的にもまだかな・・・
どっとねっとふれーむわーくの本なんか買わんでも
SDK 入れれば一通りの情報は手に入る
407 :
NAME IS NULL:2009/05/26(火) 00:40:56 ID:MkK7OrUo
>>404 まじ?まじ?SQL2008の存在意義は?ありえんだろう。アクセスで64出したら共食いじゃんか。でたら移行するけど。
Accessはスタンドアロン向けだろ。
最近のは違うのか?
409 :
NAME IS NULL:2009/05/26(火) 00:52:28 ID:MkK7OrUo
スタンドアロンでいいよ。SQL2008をフルに使ってる会社あるの?ユーザーからしたらアクセスで早けりゃ問題ない気がするよ。
またすごいのが現れたな。
大企業の基幹システムとか社内・社外webシステムとかで当たり前のようにSQLServer使われてるんだけど。
当然「スタンドアロンでは問題なく動きます」レベルじゃ話にならないし
Accessに食われるとかそういうたぐいのものでは全く無い。
とりあえず、おまえの環境にSSはオーバースペックだってことは分かった。
412 :
NAME IS NULL:2009/05/26(火) 01:18:14 ID:MkK7OrUo
基幹でSQL2008の出番ある?名古屋の銀行ぐらいじゃ?売れて拡大してるように見えないね。アクセスとかがメジャーじゃ?
もう寝ますw
おやすみ。
414 :
395:2009/05/26(火) 04:57:46 ID:???
>>405 そうですか。でも私の場合、本当にド素人なんですよ。。。
ADO以前のデータベースの基礎からやりたいと思います。
データベースは単体アプリより慎重に(?)真摯に取り組まなければと感じています。
>今の自分的にもまだかな・・・
またまた、私よりは格段に上ですが(笑)
>>406 そうなのですが、やっぱり本って使いやすいんですよね。愛着もわきますし。
なんていうか耳が黒くなってるのを見ると「あぁ俺よくやったなぁ。。。」なんて感じたり
そんなこんなで判らない事だらけですが、今とてもデータベースが楽しいです。
415 :
NAME IS NULL:2009/05/26(火) 19:50:05 ID:HK59sqNM
>>414 2005+SSMS Express インストして、現場で使えるSQL
その後 ビギナーズ・ガイドの順で自分はやった
当然それだけじゃ使えないので
Accessのクエリ->どんなSQLが作成されるか をかなりやった
#ちょうど クエリ->VBA + SQLベースで書き換えやってたこともある
#独学だったし、かなり遠回りとも言えるかも・・・・
ADO以前ってDAOなのかOLE DBなのか
RDO
SSって略してるやつはじめてみたわw
SSMS とか SSIS とかは使うけどな。
420 :
NAME IS NULL:2009/05/27(水) 09:16:01 ID:ti7sC1Xg
SS>SSMSのこと?
普通に書籍なんかにのってるが?
#赤本もそうじゃなかったかな
421 :
NAME IS NULL:2009/05/27(水) 09:27:27 ID:ti7sC1Xg
ついでに SMS だと普通はSystems Management Serverだろう?
422 :
395:2009/05/27(水) 16:13:01 ID:???
>>415 > Accessのクエリ->どんなSQLが作成されるか をかなりやった
今ちょうどそんな感じです!
>>416 ×ADO以前のデータベース
○ADO以前にデータベース
・・・すみません。
ところでなんで私にはIDが出ないのですか?
423 :
395:2009/05/27(水) 16:14:44 ID:???
というか、ここの住人さん達は優しいですね。
罵倒されるのを覚悟して書き込みしたのは秘密です。
425 :
NAME IS NULL:2009/05/27(水) 21:43:36 ID:MgNPUPnE
うーん 気にせずにやってみればいいんじゃない?
誰だって最初はあるんだし
#今は えらそうなこと書いてる奴でも、最初はみんな初心者w
フルタイムで開発してる奴以外やっちゃいけない なんてことはないと思うし
427 :
395:2009/05/28(木) 05:06:39 ID:???
>>424 いや、もっとキツイの覚悟してましたからw
>>425 >>426 ありがとうございます!
とりあえず時間は掛かっても諦めずにやるつもりです!
sum over 句って、 SQL Server には存在しないんでしょうか?
↓のようなサンプルが通りません。。
select ID,Seq,Val,
sum(Val) over(partition by ID order by Seq) as sumVal2
from IDTable
order by ID,Seq;
>>428 OracleとDB2だけっぽい@SQLハンドブック
430 :
NAME IS NULL:2009/05/28(木) 22:42:54 ID:z1ctR8/+
SQL2008 から出来るようになったぽいね
433 :
NAME IS NULL:2009/05/31(日) 18:34:29 ID:41TCZOEN
SQLサーバー2005デイベロッパーエディションが安価で売っていますが、
テスト環境限定と聞きました。
本番に上げられないとはどういう意味でしょうか?
家で勉強をするに当たり、デイベロッパーエデイションだと何か不便な点はありますでしょうか?
(エクスプレスエデイションの方が実は実用性があるのかなと不安になっています)
>>433 先に無料の方を試さずに有料の方を云々ってばーさんの遺言か何かか?
やってみて不足だと感じたら変えれば良いだろ。
VPCにWindowsServer2003体験版とSQLServer2005体験版入れて環境作って期限まで遊べば?
これなら親機を余計なソフトで汚染することも最小限にできるでしょ。
>433
安い理由は、開発やテストすんのにDBが糞高いと使ってもらえないから
本番運用のためのライセンスは、納品先に買ってもらってねってこと(開発用ライセンスも顧客が買ってくれる場合もあるけど
家で勉強する分には問題ないし、WebシステムなりC/Sシステムなり好きなだけ作っちゃって全然おk
ただそれを公開運用をしちゃダメですよと
>434も書いてるけど、体験版使うのもありだよ
体験版とDeveloper EditionとEnterprise Editionは機能的に同じだから
Express Editionは公開運用もおkだけど、機能制限が結構あるよ
Developer EditionとEnterprise Editionは機能的に同じだから
本番運用でDev版使ってるってとこけっこうあるんじゃない?
ねえよ
横着なところだとDevで客先サーバー構築して
納品時に箱のEntを一緒に納品とかありそうだな
うん、で、箱の Std を納品。。。
Ent の機能は使ってないからさ!
許して
通報しマスタ
441 :
NAME IS NULL:2009/06/05(金) 09:22:38 ID:0T9pBI2D
SQL2005からSQL2000のテーブルを参照更新したいんだけど、
リンクサーバーって繋がらないのかな?
悩んでます!イイ方法教えてください!
>>441 いい方法って言うか、繋がるから。
いろいろやらんといかんかったけど、ゴメン忘れた。
MSのサイトあされば出てくるはず。
sp_addlinkedserverでググれは中学生でもできる
インデックスについて質問です。
WHERE句などで頻繁に参照される非PKフィールドにはNonClusterdIndexを張ると思いますが、
あるフィールドが重複してインデックスに含まれていても問題ないでしょうか。
列A[PK], B, C, Dのようなテーブルである場合、
Index1 {B, C, D}
Index2 {B, D}
Index3 {C, D}
のような張り方です。
先輩からはWHERE句で参照されるパターンに沿った方がいいから、
こうなっているという風に教えられましたが、
Index1で全部含まれているから、他はいらないんじゃという疑問があります。
問題ない。
いらないかどうかは、実際に試してみればいいんじゃない?
必要なら張るべし
>>445 チューニング・アドバイザ様の指示に従うが吉。
一度のSELECTで複数の値を変数に代入することって可能?
要は以下のような感じ
※ただしエラーとなる
select @a = col_1, @b = col_2 from table_name
一応カーソルを使ってINTOで無理やり複数の代入は出来るんだけど
冗長な構文になってしまって・・・
やっぱし素直に二回分けて書くしかないんかな?
>>445 > Index1で全部含まれているから、他はいらないんじゃという疑問があります。
Index1 だけだと、
- B, C, D を使った検索
- B, C を使った検索
- B を使った検索
でインデックスが使われる。
B,D や C,D での検索ではIndex1は使えない
451 :
NAME IS NULL:2009/06/08(月) 10:39:17 ID:LBsGd1L1
Windows2003EnterpriseServer
MSSQL2000EE SP4
USERテーブルのバックアップで失敗しています。
一週間ほど前から、ロック/プロセスIDのところに、以下のような
プロセスが残っていて、トランザクションログとDBのバックアップが
失敗しています。
spid 60
オブジェクト ロック モード 状態 所有者 インデックス リソース
USERDATA DB S GRANT Sess
USERDATA DB X GRANT Xact [BULK-OP-DB]
USERDATA DB X GRANT Xact [BULK-OP-LOG]
実行しているSQL
BACKUP DATABASE [USERDATA] TO DISK = N'd:\MSSQL\BACKUP\USERDATA\USERDATA_db_200905290200.BAK' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
どうも、データベースの保守計画で毎週日曜日にやってるインデックスの整理?に
時間がかかり、朝一のDBバックアップや2時間毎のトランザクションログの
バックアップとぶつかってロックがかかっているような感じです。
そのため、現在バックアップが出来ていない状態が続いています。
現在の状態を回復させるために、上記のいずれかをぶった切りたいのですが、
どのロックを強制切断するのが吉でしょうか。アドバイスお願いします。
ちゃんとスケジュールすればいいじゃん
SQLServerってロックかかってるとバックアップがブロックされんの?
454 :
NAME IS NULL:2009/06/09(火) 14:27:57 ID:qYGmQNJ/
>452
インデックス整理が毎週日曜日の0:00から、
フルバックアップが毎日2:00でスケジューリングしていたのですが、
たかだか2GB程度のインデックス整理でそんなにかかるとは。。。
メモリ4GBも積んでるのに。。。
>453
インデックス整理のDBロックとバックアップ処理のDBロックが
ぶつかったみたいなんです。そんなの考慮されてると思ってましたorz
で、そろそろバックアップ出来ない状態から二週間近くになるので、
一番安全な気がするBULK-OP-LOGから切ってみることにします。
メモリ4G載せてもPAEしてなくて1.7Gくらいしか使えてない罠
456 :
NAME IS NULL:2009/06/09(火) 23:35:19 ID:0t2mUulb
定期的に大量データをinsertする必要があるのだが、処理時間を
短縮するためにトランザクションで
bcp_init -> bcp_bind -> bcp_sendrow -> bcp_done
を定期的に実行している
初回データインポートにbulkcopyを使うというのはよく見かける
んだが、insertのかわりに bcp_xxx つかっても問題ないよね?
>>456 BULK INSERTのがいいんじゃね?
2005EXPRESSで
トランザクションログがいっぱいの時操作が出来なくなってしまいます
を削除する場合どのような方法がありますか?
完全バックアップしかありませんか?
トランザクションログをばっくあっぷ
大した用途に使ってないんなら「単純」モデル推奨
トランザクションログファイル追加って手もあるな
461 :
NAME IS NULL:2009/06/10(水) 21:47:05 ID:yFbp1sVw
>>457 データはメモリ上に生成されるので bulkcopy のほうが
効率いいかと思い・・・
>>459 了解です
それで試してみます。
>>460 出来れば切り捨ててしまいたいのです。
そこまで復旧性を求められているわけでもないので・・・
EXPRESSってデフォルトで単純モデルだった気がしたんだが
復旧モデル変えたのか?
>>544 しいたけ作れ!
―――――――――――――――All:547― 名無しさん@お腹いっぱい。 2009/06/11(木) 23:37:19ID:JnSqLCGI
某板でいいIDを見た
>>462 http://www.snow-drop.org/pgday/archives/sqlserver/2006_12/ (1)ログファイルサイズを確認
→(dbname.LDF)かなりでかいはず。
(2)クエリアナライザより下記コマンドをdbnameに対して実行
EXEC sp_dboption 'dbname','trunc. log on chkpt.',true
(3)Enterprise Managerより[dbname]のプロパティを確認
[オプション] - 復旧モデルが「シンプル」になっていることを確認
「自動圧縮」にチェックが入っていることを確認
(4)dbnameに対して「データベースの圧縮」を行う
→トランザクションログファイルのサイズが変わったことを確認
質問です。
SQL Server 2005 Standartdなのですが、
ログインしたユーザー名や、ログインしてきたマシン名、接続してきたソフト名などの情報が
残るシステムテーブルってありますか?
アクティブモニターで閲覧できるような情報が知りたいのですが。
誰かがメンテナンス用の削除ソフトを勝手に起動してテーブルを
ごっそり消してしまったようなのですが犯人がわからないため、
そういったテーブルがもしあれば調査の糸口にしたいのですが…
それで消されてしまうセキュリティーの甘さは反省しております。。
467 :
466:2009/06/14(日) 22:43:29 ID:???
復旧モデルは単純にしており、トランザクションログは残っていないとおもわれます。
>>466 そういうのって普通ソフト側でログとるものだと思うのだが…
SqlServer2000でタスクの完了→メール通知という形にしてるんだけど、これをタスク完了→特定のバッチ実行という風にできないですか?
できたような気がする
472 :
451:2009/06/15(月) 19:30:38 ID:RvkONsIE
ロックしているセションを強制終了したのですが、終わってくれません。。。orz
ちなみに、同じセションIDの全部を試してみましたが、全部ダメ。
もしや、この状態でサーバを再起動しちゃうと、ロックされてから今までのデータが
メモリ上から虚空の彼方に。。。
ちゃんとファイルに情報が書き込まれてるかを確認する方法は無いでしょうか。
例えば、最後のコミットがいつ、とか最後にファイルに書き込んだログ、とか。
そろそろWindowsUpdateで再起動しないといけないのですが、ホトホト困りました。。。
まずインデックスの整理をやめてバックアップに専念したら
>>468 >>469 そうですか…orzありがとうございました。
ログはとっているのですが、そのメンテナンスソフトは通常サーバー上で動かすことを想定していたため
自分のローカルに吐く仕組みでして…今回クライアントマシンが膨大な数あるため
どこにログが残っているかの調査がまず大変という状態です。
>>469 ソフト側って、サーバ側でログとらないと、
悪意や過失で行われた操作がチェックできないだろうが
>466
普通DBMSには監査って機能があるから調べてみるといいかもしれん
まあ、事前に有効にしてる必要があるかも知れんがな
せめてトランザクションログだけでも残してれば、
最悪実行したSQLぐらいはわかったかもしれんが...
普通は監査はサーバ側で行うよね。
でもSQLServerの監査って2008からの機能でEEのみなんだよね。
で、マジで接続ログとかないの?
今度SQLServer使うことになったんだけど、参ったな。
2008EE利用予定だけど、監査機能使わなくても接続ログぐらい吐いて欲しい…
SQLServer2005EEを使用しています
SQLServer構成マネージャのTCP/IPプロパティのアドレスが
ipconfigの内容と異なっているのですが、これはSQLServer自体が
IPを持ってるって事なんでしょうか?
質問なのですが2005EEで
パスワードが空欄のユーザを作成しました。
sqlcmd -U hoge -P "" -S SQLSERVER
でログインできなくて困っております(エラーメッセージ出ない)
osql -U hoge -P "" -S SQLSERVER
ではログインできます。
なにが問題なのでしょうか?
>>480 それで運用するのって、ちょっとコツが要るんだよな
>>479 ありがとう。よく見たらIPv4の方にばかり目がいってIPv6を見てませんでした。
ただ、他PCのIPが中にあるのが気にはなりますが・・。
もう二つほど質問を
1、一時的なデータベースファイルを作るためにSQL Serverから未使用の
データベース名を生成して取得するような機能は無いでしょうか?
2、SQL Server Management Studio Express(2005)で試しにサーバー名を他PCの
IPアドレス、認証をWindows認証にして接続してみたところ
「このユーザーは SQL Server の信頼関係接続と関連付けられていません。
(Microsoft SQL Server、エラー: 18452)」
とエラーが出るのですが、設定が間違っているのでしょうか?
ポートは1433で固定しています。
「<PC名>\SQLEXPRESS」では接続できていました
一時データベースってなんだ? そんな使い方、一般的にはしないぞ。
どうしてもやりたきゃ、GUID でも取ってこい。
IP アドレス\SQLEXPRESS で接続してんのか?
具体的にどういう設定でどういう風に接続してんのか書けよ。
SQL鯖には tempdb ってのがあるんだよ
>>483 1. ない
2. サーバーと他PCと<PC名>のマシン名、IPアドレス、ドメイン名を全部を書け
SQLSERVER2000のDBを完全バックアップして、
SQLSERVER2008で復元してみたところ、
あるストアドの動作が2000の時と比較して、
5倍近く遅くなっていのですが何が原因なのでしょうか?
やはり、INDEX絡みでしょうか?
ご教授お願いします。
2000との設定やファイル構成の違いを調査する
具体的に負荷がかかっているクエリを割り出す
パフォーマンスモニタで負荷がかかっている処理を調査する
あたりをしてみるとか
プラン絡みじゃね?
とりあえず関係あるのを片っ端から UPDATE STATISTICS
質問です。
SQLserver2005でストアドの中身を見ようとした際に暗号化されていて見れなかったのですが、
これを復号する方法はありますか?
dSQLSRVDを使用したのですが、ログイン時に注意書きが表示され、はいを押しても何も起こりませんでした。
OSはWinXP SP2です。
結果セット(ビューのような)を返すストアドがあるんですが、
この結果セットを次段の SELECT FROM の FROM に加えたいのです。
SELECT * FROM [ストアド名](パラメータ)
じゃダメぽいです。
「複数ステートメントのテーブル値関数」を使えば済むのですが、
中で一時テーブル(#TMP等)を使ってるためダメと言われてしまいます。
493 :
492:2009/06/18(木) 14:27:55 ID:???
自己レスです
一時テーブル(#TMP)を使わずテーブル変数(@TMP)を定義して行うようにして
「複数ステートメントのテーブル値関数」を作って行えました。
SELECT * INTO #TMP FROM 〜
↓
DECLARE @TMP TABLE(〜);
INSERT @TMP SELECT * FROM 〜
>>486 一時的なデータを溜め込むデータベースと、
データベース自体を一時的に作成するのとは意味が異なる訳だが。
それとも実はtempdbってCREATE DATABASE、DROP DATABASEが繰り返されてんの?
temp name が必要なほどcreate database を繰り返すこと自体が間違ってる
トランザクションログのバックアップって1分間隔でやるのって過剰?
トランザクションログとデータを同一領域に作ってるから、ローカル
ディスクにログのバックアップしようと思って。
ストレージはDELLのiSCSIのやつだけど、こいつしっかりもんかな。
てっか、漏れSE兼PGなんだけど。。。
過剰
>トランザクションログとデータを同一領域に作ってるから
ちなみに、これは金とシステム屋の考慮不足。
漏れも一緒にやってたんだから言い訳だな。。。
>>498 データの重要性によるから、レス貰えないと思ってたんだけど、ありがとう。
ストレージを信用してもいいって事かな。
デイリーでテープに吸い上げてるから、一日前には必ず戻せると思うけど
ホントは消えちゃいけない系のデータだから、せめて1分前には戻せるように
しておきてえ。
あー、バグもとらにゃあかんし。胃がいてー。
つーか、1分とかってのは、バックアップの単位じゃないから。
1分前の状況に戻す、なんてのがあり得るの?
そういうのは、ミラーリングで何とかする分野。
>>501 >1分前の状況に戻す、なんてのがあり得るの?
ないない。直前の状態にまで戻せれば、いつ時点に戻せって要件ではないです。
普通はDBが壊れた場合、その時点のトランザクションログをバックアップして
フルバックアップ適用→バックアップしたトランザクションログを適用で
直前まで戻るよね。
でも、SANが逝った場合、データとトランザクションログが同時になくなっちまうから
どうしたもんかなって。
クラスタでも用意してみては
Windows ServerとSQL Serverだったら設定も楽でしょ
そもそもMSCSだよ。で、ストア先がSAN。ここまでは一般的なんだろうけど
SAN上の領域っていうのか、それが同一ディスクなんで、ちょっとリスクがあると。
DB屋がちゃんといれば、普通はデータファイルとトランザクションログファイルは
別ディスクにするのが多いと思う。まぁ、金も関係あるけど。
やるんだったら、クラスタじゃなくてただの2台構成でレプリケーションか。
そうすっと、片方が落ちたときに2号機に繋ぐようにアプリ側に手を
入れなきゃいかんな。ADO.Netのどっかのバージョンから接続文字列に
フェイルオーバー時の鯖名を書けるようになったみたいだけど。
505 :
NAME IS NULL:2009/06/21(日) 03:21:06 ID:tiVuME5l
Visualstudio2008とSQLサーバーを用いていろいろ試したいと思っています。
SQLサーバー2005の商品を見ると、無料のエクスプレスエデイションの外、ディベロッパーエディションが5000円程で売っています。
機能的にはディベロッパーエデイションの方が多いみたいですが、あくまでも開発環境でしか使えないように書いていました。
開発環境でしか使えないとは、どういう意味でしょうか?
>433-435
100前くらい読め
>>497 ディスクに1分ごとにバックアップするなら、
そのバックアップ先のディスクにログを作るようにすればいいんじゃねえかと思うんだがな
>>497 >>SE兼PG
そういうのは「なんでも屋」って言うんだよw
可哀想に、よほど零細のソフトウェア会社なんだねwww
>>507 フェイルオーバーしたとき、何処のトランザクションログ見るんだよw
零細でもなんでもいんじゃね?
朝っぱらからつまんねー煽りしちゃって。
510 :
NAME IS NULL:2009/06/21(日) 09:19:22 ID:8PbaaLAf
>>506 ありがとうございます。
本社がエンタープライズエディションなのですが、
ディベロッパーエディションで開発したものを本社に送って、
被せることも可能でしょうか。
>>510 100前くらい嫁、って言われてんだろが
>>504 SAN組んでクラスター化する予算はあるのに、
データ領域とログ領域のディスク分ける予算はないわけですね
ま、業務継続を第1にするか、データの保障を第1にするかだが
予算の使い道間違ってる気がするな
考えが及ばなかったんだろ
よくあること
>>512 ミラーリングで不自由ないと思うが。
ほぼリアルタイムに複製されているから
「障害発生1分前」なんて言う昔に戻ってリカバリさせる必要ないし
コネクション切れるだけで済む。
ミラー側のOS/SQLはライセンス要らないし
>データ領域とログ領域のディスク分ける
てのはパフォーマンス面でも意義は大きいだろ
単に論理ディスクだけ分けてるってのもよくあること
517 :
483:2009/06/23(火) 19:49:31 ID:???
遅くなりました。
1、一時という考え方が無いんですね。Access感覚でした。
2、今回PC一台のみで試してました。
具体的な設定というとどこを言えばいいのか悩みますが
ipconfigで確認したIPが"AAA.BBB.CCC.DDD"だった場合
SQL Server Management Studio Expressでは
サーバーの種類=データベースエンジン
サーバー名=AAA.BBB.CCC.DDD
認証=windows認証
接続文では
"Data Source=AAA.BBB.CCC.DDD;Integrated Security=True"
でした。
>>517 で?
ドメインは使ってるの?
ワークグループの場合、ログインユーザーのアカウントは、接続先にもある?
519 :
483:2009/06/23(火) 20:50:04 ID:???
>>518 ドメインは使ってないです。
PC1台で自身のSQL Serverにアクセスしようとしているので
ログインユーザーはあります。
他のマシンに繋ごうとしてるんじゃなかったよかよw
んで、自分自身にはつながったの? つながったんなら、
サーフェスなんたらを実行して設定変更、他のマシンから、だな。
回答ありがとう
>>520 最初は他のPCでしたけど、自身でやってみても繋がらなかったので。
>>521 自分自身にも繋がりませんでした。でも"127.0.0.1"だと繋がりました。
サーフェスというのを知らないので調べてみます。
ちなみにIPを使った接続方法自体は
>>517であってるんでしょうか・・?
>>522 インストール時にインスタンス名なしならつながる。ありならつながらない。
SQL Server Express のデフォルトインスタンス名は、SQLEXPRESS だな。
IP でつながらない、ってのは変だな。正しい IP を指定してんのか?
その IP に ping は通る?
つーか、ひととおりヘルプを読むなりして、わかんないところがあったら質問しろよ。
あー、ローカルのみになってんのか
セキュリティ構成→リモート接続で適当に選べ
参照キー等を意識せずに、DB内のテーブルやビューをすべて削除する方法ってない?
>>527 DB消せば?何も要らないって事でしょ?
じゃあ先にFK消せば?
531 :
NAME IS NULL:2009/06/25(木) 11:47:13 ID:gZv/lDt6
クエリの中の文字列でエスケープしなくてはならない文字って何でしょうか?
シングルクオート
HDDからIntelのSSDに変えたら体感できるほどレスポンスがよくなった
おまwアホかwSSDをDBに使ったらすぐあぼーんだぞw
圧倒的に参照のみが多いようなケースならありだろ。
月に1度の月次処理でデータ作って、あとは参照が100万回とか。
どういう経験則で言ってるんだか知らんが、
32GBしか無いデバイスに1日3.7TBも書き込む方が大変だと思うよ
1日3.7TB書き込む話はどこから出てきた
そういう触れ込みだっただろ?
2次ソースならググれば出てくる
流れも何も1日3レスだけなんだが
会社が客に納めてるシステムがMSDE使ってるんだが
ある日突然動かなくなって電話かかってきた
よく見たらファイルサイズが満杯
コボラーが固定長でDB設計して圧縮メンテもしないからこうなるんだよと言ってやろうと思ったが
言わずにほっといたw
圧縮って地雷ってことしか聞いてないんだけど実際どうなの。
パーティション関数でファイルグループ分けしかやってないわ。
あと、固定長でいけるところは固定長でいいんじゃね。
つか、納品にDeveloperEditionってどうよ。企業倫理的にもライセンス的にアウトだろ。
MSDE は Developer Edition じゃないぞ。
544 :
542:2009/06/28(日) 23:44:40 ID:???
無知スマンかった
ファイルサイズが満杯ってディスクが満杯ってことかと
思ったが2GBになっちゃったのか
546 :
NAME IS NULL:2009/06/29(月) 09:57:18 ID:zl5MIKEp
passj ってなにがあったん?
コミュニティなんてここしか見てないんだけどw
MSがきちんと引き受けてくれたらいいのにね
549 :
NAME IS NULL:2009/07/01(水) 10:01:26 ID:63+OryYZ
「インサイド Microsoft SQL Server 2005 T-SQL編」買った人 どんな感じ?
帰りに見たら買う予定なんだが
#翔泳社のストアド本は持ってる
すみませんが、教えて下さい。
下記のようなネットワークの構築を検討しています。
イントラネットで繋がったネットワークがあります。
ネットワーク内のPCが毎日作るファイルを、
サーバーは1日1回自動的に収集します。
とあるエライ人は、
こういったネットワークならSQL serverの無料版(Express)でサーバー組めるよ
と言ってたんですが、実際のところどうでしょうか。
もし他に適しているソフトがあれば教えて下さい。
とりあえずServerでぐぐれw
何をするものかわかってなさそ
552 :
NAME IS NULL:2009/07/01(水) 20:51:38 ID:4SR19Le+
河端善博さんとおがわみつぎさんのブログはどうなるの?
無料版は知らないけどスケジュール実行はSQLserverが機能として持ってる。
DB処理だけじゃなくて外部のEXEとかも実行できる。
「タスク」でじゅうぶん
収集してどうするんだよ
ただ集めるだけなら、「ネットワーク内のPC」とやらがファイルの保存先を「サーバー」にすれば解決するかもしれない
「ネットワーク内のPC」がどうやって毎日作ってるのか知らんけどね
集合知システムでも作るんだろう
集めたファイル一覧をDBにリストとして入れたいとかじゃないのかな。
あるいはファイルそのものをDBに格納とか
559 :
550:2009/07/01(水) 23:11:40 ID:???
みなさんありがとうございます。
集めたデータ(EXCELファイル)は毎日EXCELマクロで結合してDBに格納します。
あわよくば、結果をメールで配信したい・・・けどまだそこまでは望んでません。
そのExcelファイルの元のデータは手動入力なの?
561 :
NAME IS NULL:2009/07/03(金) 19:54:48 ID:gLY2GIGq
SQLServerって
デスクトップへのログインユーザーごとに
サービスを動かしたり止めたり出来るっけ?
ログインユーザごとにインスタンスを立てればいいんじゃね
スタンドアローンで使うならAccessで十分なんじゃないんだろうか。
565 :
NAME IS NULL:2009/07/03(金) 23:55:17 ID:2h6gv9f5
SQL Express なら無料
MDB は結構あっさり壊れる
MDACは無料
HDDは結構あっさり壊れる
MDAC、コンパクトだし
OpenRecordset(〜,dbOpenDynaset)
とか原始的なアクセス手段は半端ない速さだからなぁ
別に共有ファイルにしなければ、滅多に壊れないし > MDB
>>558 え、まじ?
たまにわかんなくなると重宝させてもらってたのに〜
>>564 フロントエンドはAccessで十分だな、今のとこ。
DBにアクセスするPC 3台だけだし。
SQL Server 売れてへんの?
2005から3年で新しいバージョン投入したくらいだしそこそこ売れてんだろ
573 :
NAME IS NULL:2009/07/05(日) 01:14:16 ID:Lmw3u2eb
SQLサーバー2005を買いますが、初心者です。
お勧めの教本があれば教えてください。
秀和システムの極意シリーズが好きなのですが、管理編しかないみたいです。
管理以外に何をやりたいんだよ?
>>573 現場で使えるSQL
これは一冊持っておくと良い
577 :
NAME IS NULL:2009/07/05(日) 19:10:34 ID:evUzLZU2
赤本じゃね
あとはビギナーズバイブル位かな
>>575 に同意
初心者なら現場で使えるSQLはいいかもね
ある程度理解できたらミックのHPも一読の価値はあるな
本も出ているけど「リレーショナル・データベースの世界」ってHPに書かれている内容を
時間あるときにでも読んでおけばいいくらい
まぁ、SQLを学びたいのかSQL Serverの機能を学びたいのかで話は変わるけど
SQLServer初心者です。
教えていただきたいのですが、
ディストリビューターとして動かしているサーバー上の、
「MSrepl_commands」テーブルが肥大化し、ドライブを圧迫してしまっています。
なぜ、肥大化してしまうのでしょうか。
また、今の状況を回避するには、どうすればよろしいでしょうか。
宜しくお願いします。
XP Professional + SQLServer2005 Dev
dev で運用しないでください
おわり
devで、運用はしておりません。
RUNテストをしております。
>>579 @そのテーブルに非クラスタ化インデックスを沢山貼りすぎている
AそのテーブルのインデックスのREORGANIZEやREBUILDを頻繁に行っている
Bデータベースの圧縮を頻繁に行っている
Cデータベースの自動圧縮をONにしている
Dデータベースの復旧モデルをフルにしている
Eその他の原因
583 :
579:2009/07/08(水) 10:06:07 ID:???
>>582 ご指摘ありがとうございます。
取り急ぎ、「MSrepl_commands」をTruncateし、
ディストリビューションDBに対して、「ファイルの圧縮」を
「未使用領域の解放前にページを再構成する」を選んで
実行したところ、ファイルの容量は減らせました。
質問です。
SQLServer2008で作成したテーブルに、CSVかExcelで
データをインポートしようと思っています。
対象テーブルにはIDENTIFY(自動インクリメント)のカラムがあるのですが、
IDENTIFY型のあるテーブルにはデータのインポートは不可能なのでしょうか?
IDENTIFYのカラムはINTで宣言してあります。
宜しくお願いします。
2008にはIDENTIFY型なんてのがあるんか
すいません。
数値型にIDENTIFY設定と書けばよかったです。
IDENTIFYを解除してインポートした後に、再度IDENTIFY設定すれば
データは入るのですが、上手いインポート方法がないものかと
587 :
NAME IS NULL:2009/07/08(水) 19:43:44 ID:QkjV39Sz
dev
ビジュアルスタジオスタンダード以上じゃないと動かないんだっけ
家に安い!って買った2008が 飾りになってます
エクスプレスエディションの人より
つか、インポート時に勝手につくだろ
589 :
NAME IS NULL:2009/07/08(水) 20:42:29 ID:QkjV39Sz
Accessでいうオートナンバー型みたいなもの?
事前に番号がふってあるとダメなんかな
Accessだったらそこのフィールドを空白にしてインポートするんだけど
ちなみに消した後の番号から始まるんですよね(1,2,3ってあって 1,2,3けして 追加すると4から?)
連番を1から始めるのには、どうするんでしょうね・・・ググッテ見るか・・
自動採番フィールドで思い出したんだが
SQL2000だと番号振った後にテーブル内容全部DELETEしても
たとえば10レコード全部消した後にインサートしたら11から採番されてたような気がするんだが
その後のバージョンから1番からの採番に変わった?
インポートするときにそのIDをどうしたいんだ?
俺なら1回別テーブルにインポートしてからinsertする
自動で振りたいなら、その項目を無視してinsert
上書きしたいならSET IDENTITY_INSERT をオンに
2008よくわからんがたぶんそれでいけるだろう
>>590 その動作は気のせいじゃないが
その後のバージョンでその仕様変えられたら俺はバージョンアップ拒否するぞw
deleteしたぐらいで同じ数値振られたらIDとして使えねえじゃないか
つか、マジで変わってないよね?
TRUNCATE TABLE するか
IDENTITY 変更しなければ
そのまま
>>592-593 トンクス
俺の気のせいだったのかな
たまたまデータの加工用に作ったテーブルにID列つけたんだけど
DELETEしてINSERTしたら1からに戻ったように見えたんだよね
ちなみにDBは2008
明日職場でもう一度確認してみるわ
DELETEじゃなくてTRUNCATEしたに100ナニカ
SQLServer2008ExpressをローカルPCにインストールして、その中に構築した
DBに接続したいのですが、ネットワーク接続していないPCだと接続できないんでしょうか?
ASP.NETで作成したWebアプリケーションのデモをノートPCで見せたいだけなんですが、
LANケーブルを抜くとDBにさっぱり繋がりません。SQL認証で接続しています
昔の SQL Server はダメだった。今のはシラネ。
どうやって接続してんの?
できないのですね orz
今は普通にLANケーブルを挿したPCが開発環境で、社内用のデモサーバに
Webアプリケーションを構築しているだけです
デモサーバにあるDBと同じ構造のDBをローカルPCに作成して、そこに対しての
接続や各処理は滞りなくできたので、そのままスタンドアロンで実行できるかと思っていたら…
だから、どうやって接続してんのか聞いてんだよハゲ
Webアプリは知らんが、ウィンドウズアプリなら普通につながる。
Webの接続ユーザーの設定か?
601 :
NAME IS NULL:2009/07/09(木) 09:05:25 ID:R12QB+o3
>>587 mdf直接指定で動くんじゃね>VSExpress
127.0.0.1じゃダメなん?
603 :
594:2009/07/09(木) 11:23:52 ID:???
やってみました
自分の勘違いでした
2008もデリートしたテーブルでは自動採番列の番号は保持されてますね
お騒がせしましたm(__)m
>>584で質問させて頂きました。
どうもIDENTIFY設定していると上手くインポートできないようで、
結局インポート先のテーブルのカラムからIDENTIFY設定をはずして
データをインポートしました。
IDENTIFY設定していた列が。プライマリキーだったからなのか…
>>596 C:\Program Files\Microsoft SQL Server\DBサーバ名\MSSQLの下に
DATAって名前のフォルダがありまして、その中にテーブル名.mdfというファイルがあります。
VSの方にApp_Dataフォルダを追加して、対象のmdfファイルをコピー。
その後でVSの方から既存の項目を追加でmdfファイルを指定します。
接続文字列は以下のようになります。
".\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|xxx.mdf;"
上記のように記述して、通常通りにConnect、Openすればスタンドアロンで繋がると思います。
|DataDirectory|部分の記述はApp_Dataフォルダを指しています。そのままの記述でOKです。
mdfファイルに直接アクセスするので、SQL認証もWindows認証も不要です。
VSのバージョンがわかりませんが、もしVS2005を使っていてDBがMS2008の場合は、
mdfファイルのバージョンが違うとかで接続できません。
VS2008で開発するか、MS2005の環境に同じDBを構築してmdfファイルを使えばいけます。
けど、もっといい方法あるのかもしれません。
>>583 ファイルやデータベースの圧縮をやると容量は減らせるけどパフォーマンスが
すごく悪くなるからやらないほうがいいと言われている。
management studioで
テーブルのデザインを開こうとすると
>タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。
のエラーが出ることがあります。
1度出るとずっと出て、再起動すると出なくなります。
レポートで「すべてのトランザクション数」を見てもゼロです。
何が原因でしょうか。
SqlServer2005のDeveloperEditionです。
607 :
606:2009/07/12(日) 01:55:30 ID:???
その状態でもテーブルのレコードを見たり更新したりは出来ます。
それ実際のテーブルに更新しにいってないだろ。
management studioで値が更新されていることを確認した?
609 :
606:2009/07/12(日) 02:42:49 ID:OTyzIhrr
>>608 タイムアウトが出る状態で
サーバー機からmanagement studio上でレコードを更新した後、
サーバー機からmanagement studio上でデータを見て更新されています。
他のPCからそのレコードを見てもやはり更新されています。
状況をまともに説明できないなら、再インストールくらいしか方法はないよ。
611 :
606:2009/07/12(日) 20:40:41 ID:OTyzIhrr
すみません、他にどのような情報が必要でしょうか。
そして再インストールすれば直るのでしょうか。
ソースじゃね?
Yoshida ソース?
既存のストアドで実行プランを作り直す場合はsp_recompileでしかできないの?
再起動以外でお願いします。
UPDATE STATISTICS
618 :
NAME IS NULL:2009/07/17(金) 23:09:48 ID:SStLmNJs
えっとsaのパスワード忘れたんですけどアウトですか?
>>618 ルーク、Windows側のユーザーでやってみるんだ。
なるほど、混在モードにしとくとそういう脱出方法もあるんだね。
何言ってんだか。
わざわざ推奨されないSQLモードでインストールする人とかいるのw
623 :
ルークスイカウぉーカー:2009/07/18(土) 18:12:35 ID:6qacvEzV
ありがとうヨダ師匠
暗黒面から脱出できるよ!!
SQLモードって何のためにあるんだ
昔からのSQLServer使いのためか
昔のLANはDB入るときパスワード必須だったのかい?
もともと他社製品だし
サーバーOSとDBのアカウント別管理はよくあること
626 :
NAME IS NULL:2009/07/19(日) 09:44:18 ID:8zMHOanx
Windows server 2008 enterprise をインストールしましたが、
アイコンや文字が大きく、解像度の修正をしようとしてもツマミがグレーアウトしていて
動かすことができません。
どうすればよいでしょうか…。
627 :
NAME IS NULL:2009/07/19(日) 11:58:56 ID:jrT3ZmeA
GPUのドライバをインストール
628 :
NAME IS NULL:2009/07/19(日) 14:17:42 ID:CdXSJEWR
Sqlserver2005 から Sqlserver2008のシステム移行って楽ですか?
別に Active Directory 環境じゃなくても Windows認証は使えるよ。
単に昔からの互換性確保と Windows のユーザとして登録したくないって現場のためなんじゃないのかなぁ
社員がデータを盗まないようにUSBメモリ等の使用を不可能にするのは
AD環境じゃなきゃ無理なんだっけ?
おっとこれはスレ違いだな。
AD組んでいてもSQL認証使うよ
ASP鯖はSQL認証で通した方がラクだし
633 :
NAME IS NULL:2009/07/22(水) 06:39:01 ID:45mn5fWl
外部結合で
B →(レフトジョイン) A (ライトジョイン) ← C
とした場合は、どうなるのでしょうか?
また、例えば
レフトジョインをするとき、ジョインするレフト側のレコードを条件で絞るにはどうすればよいでしょうか。
>>633 A LEFT JOIN B ON A.X=B.X LEFT JOIN C A.# ON C.#
と同義
絞るのはWhereだろ。
635 :
NAME IS NULL:2009/07/22(水) 08:12:22 ID:45mn5fWl
>>634 WHEREを入れると、ジョインが終わったあとにまとめてフィルターがかかると思っていましたが、結合前の段階で絞ることはできますでしょうか。
また、
A レフトアウタージョイン B オン A.id=B.id
と記述したとき、
A.id=NULL
のレコードも結合してくれますでしょうか。
はい。
別件だが、
A left join B on A.id=b.id
よりも
A left join B on B.id=A.id
の方が美しく感じるんだが、みんなはどう?
null 同士の結合はしないよ
a right join b on a.id = b.id
かな
>>635 うちでは結合条件(from〜join)と抽出条件(where)を明確に分ける意味で、
from句にwhereは入れないようにしている。
実行計画はオプティマイザ次第じゃないかな?
SQLServerは最近使い出したばかりなので、どんな実行計画を吐くかはわかんないけど。
>>635 A LEFT JOIN B ON A.id=B.id AND A.id IS NULL
NULLは値じゃないから=は使えないぞ
SQL Serverの場合、ALLやANYってカンマ区切りで指定は出来ない?
サブクエリの結果に対してだけ使えるってことなのかな
ここSQL Serverのスレだし言っといてやるが
SET ANSI_NULLS OFF したら、
=NULLでNULLのデータ検索できるんだぜ
助けてください。
2008 ExpressでFileStreamを使おうとしているのですが出来ません。
新規DB作成、既存DBにFileStreamを追加どちらもだめです。作成時に
「物理ファイル "c:\data\Test_FileStream" を開けません。オペレーティング システム エラー -2147024891: "0x80070005(アクセスが拒否されました。)"。」となってしまいます。
もちろん、FileStreamを使えるように設定はしてあるつもりです。
FileStreamを無しでCREATE DATABASEは出来るので、アクセス権の問題でもないと思います。
ALTER DATABASE test ADD FILEGROUP...でFilestream型のFILEGROUPは作れます。
しかし、
ALTER DATABASE test ADD FILE ...で、FILEGROUPにFILEを追加しようとするとエラーになります。
さっぱりわかりません…
なんか勘違いしてるね
FileGroup FileStream でデータベースに保存先フォルダを指定
データ操作はテーブルから
>> 646
ありがとうございます。
説明が下手ですいません。
その、保存先フォルダの指定がうまくいかないのです。
なので、データ操作までたどり着けません。
CREATE DATABASE Archive
ON
PRIMARY ( NAME = Arch1,
FILENAME = 'c:\data2\archdat1.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = Arch3,
FILENAME = 'c:\data2\filestream1')
LOG ON ( NAME = Archlog1,
FILENAME = 'c:\data2\archlog1.ldf')
GO
で、上記エラーになります。
CREATE DATABASE Archive
ON
PRIMARY ( NAME = Arch1,
FILENAME = 'c:\data2\archdat1.mdf')
LOG ON ( NAME = Archlog1,
FILENAME = 'c:\data2\archlog1.ldf')
GO
にするとうまくデータベースは作成できるので、
アクセス権がないわけはないと思うのですが…
648 :
NAME IS NULL:2009/07/24(金) 11:10:20 ID:lZumjjk/
>>647 エラー内容がFS上のアクセス違反と言っているのでSQL Serverサービスの
コンテナ(ディレクトリ)に対する権限が不足しているいるのでは?
ファイル生成とディレクトリ一覧辺りが怪しい気がしますが...
>>648 ありがとうございます。解決しました。
権限が不足していたのでしょう…
2005からのアップグレードの流れできていたので、
サービスアカウントが「NETWORK SERVICE」になっていました。
これがだめだったようです。他に変えたらうまくできました。
ただ、mdfやldfファイルは問題なく作成できるのに、
どうして、FILESTREAMのディレクトリだけ作れなかったのか、
該当のC:\data2とかに「NETWORK SERVICE」に
フルコントロールのアクセス権限をつけてもだめだったので
その辺りが原因不明と言えば不明なのですが…
まぁ、「NETWORK SERVICE」アカウント以外を使えと言うことですね。
ありがとうございました。
650 :
NAME IS NULL:2009/07/25(土) 12:03:38 ID:DT7TRz8B
2005からUpってことはVista系じゃないだろうけど、もしVista系ならば
Network ServiceだとUser権限になるからFS操作時にUACで引っかかったりする
可能性はあるかな。原因判る様だったらkwsk。
651 :
NAME IS NULL:2009/08/01(土) 16:36:04 ID:HpNbshXj
SQL Server2005で1つのテーブルを復元したいです。
バックアップの種類 −完全
バックアップコンポーネント − データベース
バックアップ セットの有効期限(期間指定) − 0日
バックアップの設定は上記になっているのですが、
数日前に戻すにはどうしたら良いでしょうか?
別なデータベースとして復元させて該当テーブルだけ引っこ抜け
653 :
:2009/08/01(土) 17:08:23 ID:HpNbshXj
>>652 ありがとうございます。テーブル単体では出来ないんですね。
もう一つ質問したいのですが、バックアップを取る際に、
どの時点のバックアップを取っているのかが分かりません。
確認できません。先輩に聞くとバックアップも含めて随時更新してるから
出来ないと思うと言われました。
先輩自体がまだ完全には理解していないようなので、自分で確認したいのですが、
確認するにはどうすれば良いでしょうか?
基本的なことですみません。
チェックポイントとジャーナルでぐぐってみな。
どうにも見つからないので知恵を貸してほしいのですが・・・
SQL SERVER 2008で16進数のnVarchr(20)のカラムがあります。
このデータをソートしたいのですが、文字列ソートは微妙なので
(照合順序など環境に左右されやすそうな感じがする)
10進数に変換し、その値を持ってソートをかけたいのですが
16→10進数の変換のような関数が見つかりません。
16進数化はどうにかこうにか出来るようなのですが…
何かいい案はありませんか?
SQLServer2008でフルテキスト検索をしたいのですが,
データベースのプロパティ->ファイルで表示される
「フルテキストインデックスを使用する」のチェックがグレーアウトされてて
チェックできません...
これどうやったら解除できますでしょうか...?
>>656 構成マネージャでフルテキストインデックスのサービスが開始してあるかどうか確認した?
もとい
フルテキスト検索のサービス
だったorz
>>655 ソートするときに照合順序指定できるだろ
SQLで明示的に照合順序指定したら、その順序でソートされる
まあ桁数等で問題があるのかもしれんが、16進数って事は数字だぞ
文字で格納するのはどうなんだよ
>>656 フルテキストインデックスってすべてのエディションで使えたか?
まず使ってるエディション書いてみ
あとそれをインストールしたときの設定とか
>>659 サンクスです。
まぁDB的に16進数で保存するのは相手側の仕様でどうしようもないのですorz
普通に考えたらやりませんが、きっと相手なりの事情が色々あるんでしょう
>ソートするときに照合順序指定
は・・はじめて知った これできるなら無理しなくても解決しそうだから調べてやってみます。
661 :
656:2009/08/02(日) 04:17:07 ID:???
>657-658
どうもです.
SQL Full-text Filter Daemon Launcher
というデーモンなら動いていますが
やはりグレーアウトしています.
これじゃなくてですか?
663 :
656:2009/08/03(月) 15:58:32 ID:???
dreamsparkだとexpressじゃないか?
>>656 ヘルプによると
[フルテキスト インデックスを使用する]
SQL Server 2008 ではフルテキスト インデックスが常に有効になっているため、このチェック ボックスはオンに設定され、変更することはできません。
だってよ
666 :
NAME IS NULL:2009/08/04(火) 11:13:07 ID:YpJDN9sE
EnterpriseMangerからDecimal列(精度29以上)を編集しようとすると
メッセージ「このセルを編集できません」が出て入力できない、
クエリアナライザからだと更新できる。
この理由分かるひと?。
SQL2005とか
EnterpriseMangerって今言わないでしょ
言わないねぇ。SQL Server 2000?
Management Studio
672 :
NAME IS NULL:2009/08/05(水) 01:42:24 ID:P4pU0g9t
>>669 そう、SQL Server 2000。
今まで付き合った中で2000は最高でした。
いまだにあの感触が忘れられません。
CTRL+5にCOMMIT
CTRL+9にROLLBACK
を割り当てている
非常に便利
SQLServerExpress+ASP.NET+IISでWebを公開するときのライセンスって、サーバーCALだけでよい?
ExpressはそもそもWeb公開に使えないのかな?
>>675 使える。なので、SQL Server のライセンスは OK。
ただし、OS のライセンスが面倒。Web Server エディションを使うのが楽。
677 :
NAME IS NULL:2009/08/06(木) 15:47:48 ID:UTglU4+/
sql server 2008 expressで 更新ロックをかけたいのですが、排他ロックになってしまって困っています。
BEGIN TRAN
SELECT * FROM hoge WITH(TABLOCK, UPDLOCK);
EXEC sp_lock
WITH(TABLOCK, UPDLOCK) この部分は 「表に更新ロックをする」
だと思いこんでいるのですが、sp_lock で出力されたものを見ると hoge のmodeは Xになっています。
WITH(UPDLOCK) これだと対象の行に対して 更新ロックがかかっています。
表hogeに更新ロックをかける方法をどなたか教えてください。
679 :
677:2009/08/07(金) 09:40:40 ID:???
>>678 そうだったんですか、疑問が解決してスッキリしました。
ありがとうございます。
680 :
sage:2009/08/07(金) 12:46:43 ID:???
SQLServer2005でOracle接続方法についてなのですが。
ちなみにこのサイトを参考に設定しました→
http://www.sunvisor.net/db/link_table SQLServer2005をインストール後、SQLServerManagementStudioを立ち上げ"オブジェクトエクスプローラ"の
"サーバーオブジェクト"を右クリック、"新規作成"の"リンクサーバー"を押した先の設定が分からなくて困っています。
左側に、3つ(全般、セキュリティ、サーバーオプション)の項目がありまして。
"全般"の設定は
・リンクサーバー
⇒ データベース名を入れました。
・サーバーの種類
⇒ "その他のデータソース"ラジオボタンを選択。
入力フォームには以下を設定。
- プロバイダ : Micorosoft OLE DB Provider for Oracle
- 製品名 : Oracle
- データソース : 適当な名前(今回はtest_20090807と入れました)
"上記一覧で定義されないログインの接続方法"の設定は
・このセキュリティコンテキストを使用する
⇒ "このセキュリティコンテキストを使用する"ラジオボタンを選択。
入力フォームには以下を設定。
- リモート ログイン : Oracle接続時のユーザ名
- パスワード : ********
以上の設定でデータベース名のリンクサーバーが作成追加されました。
ですが作成したリンクサーバーが本当にOracleに接続されているか分かりません。
(たぶん接続されてない気が。。。)
リンクサーバー名を右クリックすると、SELECT文を発行できそうな項目が出てきます。
しかし、選択できません。
作成したリンクサーバーをSQLServerManagementStudio上で、例えばSELECT文を実
行したりして接続されてるかを確認することはできないのでしょうか。
実際に実行してみたら?
select * from oraclelink.database.table
でできなかったっけ
>>678 明示的にテーブルに更新ロックかけるのはなぜか無理っぽいな
まあ、大量の行に更新ロックかけたらそのうちテーブルロックにエスカレーションするんじゃね
>>682 まず、オラクルクライアントのインストールと設定はしてあるのか?
>データソース : 適当な名前
つながるわけない
SQLServer2008Expressに構築したテーブルのデータをExcelにエクスポートしました
そのエクスポートしたファイルを使って、全く同じデザインのテーブルに
タスクからデータのインポートを実行しました
すると実行後のレポートで「エラーが特定できません」と表示されてしまうのですが、
データ自体はインポートできています(正常かどうかわからないのですが)
どなたかこういった事例を知っている方いらっしゃいますでしょうか?
OS:WinXP Home SP3
DB:SQLServer2008 Express
>>687 Exportしてもテーブルからデータが消えることはないから、データがある状態でデータをインポートしてエラーがでたんじゃないの?
>>689 いえ、空のテーブルにインポートしてるんです
全く同じデザインの別テーブルにインポートしたんですが・・・
エクスポート/インポートはbcpを使用?
>>691 インポート/エクスポートウィザード(DTS)を使用しました
先方はデータが入っているなら構わないというので、緊急を要するわけではないのですが
説明ができないので、どうしたものかと
MSSQL2008 Expressで確認したけど特にエラーはでないな。
単純に
ExpTable(A nchar(10),B nchar(10),C nchar(10))
ImpTable(A nchar(10),B nchar(10),C nchar(10))
をつくって、Excelにエクスポート、Excelのシート名をImpTableにしてからインポートでいけた。
(Expressなのでデータの保存はできないけど)
>>683-684-686
オラクルクライアントはインストールされていました。
今回は
"リンクサーバー"を適当な名前にして(他のリンクサーバーとの識別に使うだけっぽ
いので)、その変わりに"データソース"にデータベース名を入れてみました。
この状態で
>select * from EU9I.DDD.TEST_20090731
上記のselect文を実行してみたのですが、"オブジェクト名
'EU9I.DDD.TEST_20090731' が無効です。"というエラー
が出てしまいました。
SQLServer2005でOracleに接続するにはどのように設定をすればよいのでしょうか
ヘルプ見ろよ・・・
他人が勝手に繋ぐ分はしょうがない
>>696 不特定多数に公開するときはCPUライセンスをつかう
ちょっとした事、教えてください。
on duplicate key update で insertした時、insertした内、何件がinsertで、何件がupdateだったとかって
判りますかね?
そういうのが知りたい場合は on duplicate keyを使うべきではない?
700 :
699:2009/08/14(金) 20:38:47 ID:???
ごば〜く!
すんません
702 :
NAME IS NULL:2009/08/16(日) 17:33:46 ID:kJ2ma2r7
>>699 > on duplicate key update
何のことだろうと思ったら、MySQLってそんなことができるんだな。
意外と便利そうだがSQLServerではできないよね?
703 :
NAME IS NULL:2009/08/18(火) 20:51:38 ID:K9Uelw7k
0.1から100.0までの小数第一位までの数字を示すには、どのデータ型が望ましいですか?
デシマルでしょうか。
だね
smallmoney型は?
707 :
NAME IS NULL:2009/08/27(木) 07:56:05 ID:Jzo3lPU6
709 :
NAME IS NULL:2009/08/27(木) 13:34:56 ID:Hzlo+zD7
2005のhelpのover句を見れば例が出てるよ
適用対象
順位付け関数。
集計関数。
SQL Server 2008 WGを使ってます。
RAMディスク(FAT or NTFS)にデータベースを作成しようとしたら、
「クラスタサイズが取得できない〜」のエラーが発生し、インストール出来ませんでした。
RAMディスクにインストールする方法はありますか?
ORDER BYが集計関数の場合指定できないんだね。
とりあえず相関サブクエリで書いてみた。
SELECT company, T1.salesdate, T1.amount,
(SELECT SUM(amount)
FROM test T2
WHERE T1.company = T2.company AND T1.salesdate >= T2.salesdate ) AS onhand_amt
FROM test T1
ORDER BY company,salesdate;
ManagementStudioのクエリデザイナでOver句書くと
異常終了するのは俺だけ?
うん
>>711 うちは問題ないな
>>710 しこたまメモリつんでるならAWEをONにしてみれば?
2003R2 32bitで8G積んでるけどタスクマネジャで6G超まで使ってくれてる
DB本体はIntelSSDにいれてるけど
714 :
710:2009/08/28(金) 08:50:32 ID:???
OSはXP SP2でメモリも1Gしかありません。
HDDへのアクセスを少なくしたいとユーザーからの要望があり
「RAMディスクを作って、そこにデータベース(mdf、ldf)を作れば簡単で良いか」と
勝手に思ってたら、書いた通りの内容でエラーが出ました。
試しに、MSDE2000を使ったらRAMディスクにデータベースを作れました。
なんで、そこでそのエラーの内容を書かないのかが不思議
716 :
NAME IS NULL:2009/08/28(金) 20:01:00 ID:mYHfITA1
サーバ起動後にHDDからデータインポート、読み出しONLYなら検索が速そうだが。
データの永続化が、必要のない要件ってあるの?
そこでキャシエですよ
普通のRAMディスクにはシャットダウン時(またはアイドル時)にHDDに書き出し、
起動時にRAMに読み込む仕組みがあるだろ。
x64版を使えば、わざわざRAMディスク使う価値ないだろ
720 :
NAME IS NULL:2009/08/29(土) 15:08:10 ID:Q3BCighA
XPでメモリも1GでRAMDISKは心配だなぁ
RAMDISK容量足りなくなるんじゃね?
いまどきはメモリ安いから買えばいいんだろうけど、
なんかケチくさいぽいから無理そうな匂いがする。
721 :
NAME IS NULL:2009/08/31(月) 17:58:41 ID:mUdC7WWI
ER図をエクスポートするにはどうすればいいでしょうか?
とつぜんだなちみ
>>721 ERのエクスポートって意味がよくわからんが、リバースエンジニアリングのことを言っているのか?
だったら、そういうことができるソフトを使えばいい。
724 :
NAME IS NULL:2009/09/01(火) 11:08:53 ID:NbTDyXL8
データベースダイアグラムからER図を作りたいとか?
725 :
NAME IS NULL:2009/09/01(火) 11:12:55 ID:Cgjffy1k
ちょっと、質問させてください。
windows2000server SP4機をapacheHTTPサーバとして使用していたのですが、
ARCserve2000というバックアップソフトを導入したところ、
DBにSQL server2005が登録され、同時にIISが起動されるようになりました。
IISとapacheで競合が発生し、画面が表示されない現象が発生するので
IISの「World Wide Web Publishing Service」を停止したいのですが
その場合、SQL serverの運用に不具合は生じるのでしょうか?
マイクロソフトのHPによるとReporting Services (SSRS)が使用できなくなるようですが、
SQL serverはARCserve2000のDBとして使用されるだけですので
SSRS停止でも問題無いかと思っています。
よろしくお願いします。
726 :
721:2009/09/01(火) 17:19:13 ID:0v8FYmO2
上司にER図作ってこいって言われました。
作り方が分かりません。自動で作れるツールなどあるのでしょうか?
何のERを作るんだ?
既存のDBからのリバースエンジニアリングなら、そういうソフトを使えといっただろ?
それから、ER云々の話はSQLServerの話とは関係ないからな。
テーブル間でリレーション張ってないような状態だと
大したもの出てこないと思うけど
SSMSのデータベースダイアグラムで代用とか
visio なんて持っていないような気がする
excel でしこしこつくれ
手書き&スキャン
ストアドの文字列検索できないかなあ。
カラム名を変更したりしたときに出来たら便利なのに!
そういうのは秀丸とかでやるんじゃないのか
データベースのサイズが現在40GB程度まで膨れており、物理ディスクの空き容量を考えると不安です。
データをDELETEしてもサイズが減りません。圧縮しようにも未使用の領域は殆ど無いように見えます。
データをDELETEしたエリアを解放する方法
または、何らかの方法で最適化して容量を減らす方法
を教示いただけませんでしょうか。
>>735 ぐぐったほうがはやいよ
ヴぁーじょんは?
737 :
735:2009/09/03(木) 20:04:37 ID:???
>>736 ググっても見つけきれなくて・・・。2005 Standardです。
ダンプとってリストアすれば?
大抵のDBはそれで綺麗になるぞ。
SQLServerがどうだか知らんがw
ログがふくれてるんだろ。
740 :
735:2009/09/03(木) 20:31:36 ID:???
トランザクションログは、データをバックアップ後に圧縮してOSに返す で小さくなっています。
>>735 日々データが増え続けるような運用でしたらデータベースの圧縮をするべきではないと思います。
圧縮を行うとデータやインデックスの断片化がひどくなって確実にパフォーマンスが落ちます。
古いデータを削除することが可能なら簡単にサイズを減らせますが、それが出来ないなら容量の
大きなHDDに移行するぐらいしか思いつきません。データが増え続ける以上は仕方のないことです。
もしそのサーバーが複数のHDDを積んでいるならデータファイルを分けるのも手です。
743 :
742:2009/09/04(金) 21:07:56 ID:???
追記です。
以前客先のデータベースが大きくなりすぎてしまったのでもう1つデータベースを作って
2年以上前の古いデータを移動し、アプリケーションも別フォルダにもう1つインストール
して古いデータはそちらで見れるようにしたことがあります。
744 :
735:2009/09/04(金) 22:28:20 ID:???
皆さんありがとうございます。
殆どのデータは登録日から1年間で削除するようにしてまして、ラップアラウンドするので
当初の想定では30GB程度との試算でした。
ここまで暫く様子見して、HDD増設とデータファイルの分割を検討してみます。
ありがとうございました。
参考までに。
うちのDBも日々増加し続けるテーブルで、過去1年間保存義務がある状態です。
月ごとにテーブル作って、検索するときは各月をunion allしたクエリー使う。
1年以上古い月のテーブルは毎月deleteではなくtrancateしたあとに削除。
これで年間安定して50GB程のDBで済んでます。
>>745 735です。
参考になります。
確かにTRUNCATE した方がゴミが残らない気がしますね^^
なんかしらんけど急に2008Management Studioのインテリセンスが使えなくなった!
わけわからん!
SQLSERVER2005 Express Editionで教えて下さい。
ACCESSのadpファイルからローカルのsqlexpressインスタンスに接続する際、
サーバー名を
自ホスト名\sqlexpress
.\sqlexpress
とすると接続出来るのですが、
localhost\sqlexpress
だと接続出来ません。
ところがSSMSEは
localhost\sqlexpress
でも接続出来ます。
リモート接続の設定は一通り変えてみましたが、状況変わりません。
どういう原因が考えられますでしょうか?
同じ現象の経験がある方、お助け下さい。
751 :
NAME IS NULL:2009/09/09(水) 23:57:32 ID:PSGLeOIS
外部結合で直積を行うにはどのように書いたらよいでしょうか?
はじめは テーブルA 複数件抽出、テーブルB 1件抽出 だったため、直積で
from A, B
と書いていたのですが、テーブルBは0件の場合もあることになりました。
そこで外部結合にしようと思ったのですが、
on の後の結合条件は必ず書かないといけないようなので、
from A right outer join B on ( 1 = 1 )
のように書いています。もっと簡潔な書き方があれば教えてください。
cross join使え
直積求めるだけなら別にテーブルBが0件でも問題ないだろ
WITH A(a) AS (
SELECT 1
UNION ALL
SELECT 2
), B(b) AS (
SELECT NULL
)
SELECT a, b FROM A, B
a b
----- -----
1 NULL
2 NULL
754 :
751:2009/09/10(木) 02:58:53 ID:???
回答ありがとうございます。
>>752 やってみます。
>>753 Bは1件あるように見えますが。
SELECT NULL WHERE 1 = 0 としてもうまくいきますか?
755 :
751:2009/09/10(木) 03:21:31 ID:???
>>752 今、試せないので、先に CROSS JOIN を調べたのですが、これは単に直積のことでは?
知りたいのは結合条件を指定しない外部結合です。
A(a)
---
1
2
B(b)
---
3
のとき、直積は
A(a) B(b)
---
1 3
2 3
ですが、B が 0 件のときは直積も 0 件になります。
単なる直積ではなく、B にレコードがある場合は、直積と同じ結果、ない場合は
A(a) B(b)
---
1 null
2 null
となるような SQL文を知りたいです。
>>751 お前の言う簡潔の意味が、SQLが短いって意味ならそれ以上は無理じゃないかな
まあ、Bが絶対に1件か0件だってなら、俺ならこう書く
select a,(select b from B) from A
どうしても外部結合したいってなら
on exists(select * from A)
ただ、全行で同じ値の列がホントに結果セットに必要なのかと
まずBだけ取得して、そのあとでAだけ取得して
ホストアプリで操作した方がいいと思うがな
細かいことで恐縮だが
× select a,(select b from B) from A
○ select a,(select top 1 b from B) from A
だな
>>758 いやだから、Bが1件か0件ならって条件つけてるだろ
top1とかつけたら、Bが2件以上あってもエラーにならないじゃないか
760 :
NAME IS NULL:2009/09/10(木) 10:07:30 ID:qtYnR/B7
>>755 B にレコードがある場合は、直積と同じ結果
union
ない場合は left join
あるなしは (not) exists で判断すればいいんじゃね
全体のデータが分からないとなんともいえない
#case 使って対応できるデータなのか、どうか不明だし
例だったら、呼出側のアプリで対処だと思うけど
#としかいいようが無い気がする
レコード削除しないで、1件のままデータをNULLにしとけば問題なかっただろうに
なぜにレコード削除するのかね
>>761 だってディスク容量勿体無いじゃないですか。
case式でも書けばええやん。駄目?
ああ0件って行自体がない空テーブルなんか
”直積”は掛け算だからn×0はなにやっても0でしょ
無理やりならこんな感じ?
SELECT a, b FROM A CROSS JOIN (
SELECT b FROM B
UNION
SELECT NULLIF(COUNT(b), 0) FROM B
EXCEPT
SELECT COUNT(b) FROM B
)AS HOGE
>>764 最初っから単なる直積じゃねーって書いてあんじゃん。
ついでに言うと
from A right outer join B on ( 1 = 1 )
これより簡潔にって書いてあんだから無理やりやる方法もいらねーだろ。
無理に書き込まなくていいよ。
from A right join B on ( 1 = 1 )
from B left join A on ( 1 = 1 )
多くの回答ありがとうございます。
最初の質問で、left と right を間違えて書きました、失礼しました。
1 = 1 という書き方が小手先の技のように感じ、
他に書き方がないかと思い質問しました。
これ、と思うものが見つからなかったため、
最初のやり方で行くことにしました。
ありがとうございました。
770 :
751:2009/09/12(土) 05:54:14 ID:???
>>766-768 今気付きましたが、これは間違いの指摘ではなく、
outer は省略可能、left は right より短い、ということですね?
確かにそのとおりです。ありがとうございます。
>>770 1文字単位でSQLの短さにこだわるなら、
select a,b from A left join B on 1=1
より
select a,(select b from B) from A
の方が短いが?
Bが2件以上になったらどうするかによるが、俺はこっちをお勧めする
短いからじゃなくて、Bが1件か0件かという前提を外すとエラーになるからな
SQLの短さにこだわるなんて、趣味か自己満足の領域だと思うぞ
T-SQLじゃなくてセットアップの質問です。
VirtualPC2007SP1にXPSP2とMSDE2000SP3aを入れて、SEE2005SP3にアップグレードしようと
いう実験中なのですが、トラブルが起こりました。
アップグレード解析中にBPA command lineが動作を停止しましたと言われてしまう。
BPAClient.dllを手で.NETのGACに登録するかSxSにしたら解決するという情報を見つけて
これはうまくいきましたが、最初からどうにかならないでしょうか?
.NETは3.5SP1を入れて、KB959209もすぐに入れました。
773 :
751:2009/09/12(土) 12:02:14 ID:???
>>771 文字単位の短さにはこだわっていません。
元のSQL文が from A, B だったので、
構文、実行結果等があまり変わらない、
というのも選ぶ際のポイントにしました。
元の構文変えたくないなら単にIF使って空テーブルにNULL突っ込めばいいだけじゃね?
775 :
751:2009/09/12(土) 14:59:39 ID:???
>>774 それだと他の部分に影響が出ます。トータルで考えてSQL文の修正がコスト最小と判断しています。
レコードを更新する際に更新する値を
自分のテーブルの別レコードから持ってきたいのですが、
以下の書き方ではだめでした。
Oracleだとこういった書き方でいけるのですが
SQL Serverではどうしたらいいのでしょうか?
UPDATE 単価M a
SET a.単価 = b.単価
FROM 単価M b
WHERE a.商品コード = b.商品コード
AND a.顧客コード like '123%'
and b.顧客コード = '123-AAA'
and (b.商品コード = 'A10')
更新したいテーブルに別名付けたらだめなんですね。
お騒がせしました・・・。
SQL Server 2008 Expressで教えて下さい。
2008の新機能であるFileStreamを使ってます。
普通にFileStreamを使って、データの読み書きまでは出来ています。
それで、作った物を見せようとノートパソコンに一式入れて行きました。
もちろん、事前に正常に動作することも確認しました。
いざ見せようとすると、FileStreamのアクセスの部分でエラーが発生してしまいました。
いろいろと原因を調べた結果、ネットワークから切断された状態ではダメだと言うことがわかりました。
ネットワークに接続すれば、そのまま正常に動作します。
FileStreamはファイル共有の機能を使っているようなので、
ネットワークから切断された状態では、ネットワークコンピュータ経由で、
自分自身の共有フォルダにアクセス出来ないのと同じ現象なのかなと思うのですが、
ネットワークから完全に独立したスタンドアローンの状態ではFileStreamは使えないのでしょうか?
SQL Serverもしくはファイル共有の設定で、何とかなるのでしょうか。
ご存じの方が、おられましたら教えて下さい。
よろしくお願いいたします。
ちなにみ、OSはXP Pro SP3です。
Microsoft Loopback Adapter
>>779 ありがとうございます!出来ました。
まさかLoopbackを別途入れなければならないなんて…
と言うか、その為のlocalhost(127.0.0.1)なのでは…
localhostは、Loopbackではないのだろうか。
その点は納得しがたいですが、それは別の問題ですので、
とりあえず、助かりました。
ありがとうございます。
有効なアダプタがないと、そもそもTCP/IPがつかえてないんじゃまいか
>>781 有効なアダプタがない状態で
Ping MyPCしても、MyPC(127.0.0.1)から返事が返ってきますし、
ローカルなIISにhttpアクセスしても返事してくれますので、
TCP/IPは使えてることになるのではないかなと思います。
なので、ファイル共有の仕様?設定の問題?なのかなと思います。
>>782 ありがとうございます。こっちでもいけそうですね。
しかし、完全にスタンドアローンとして
ネットに繋ぐ予定もないデスクトップとかなら問題なさそうですが、
ノートとかあちこちのネットに繋ぐものだと、
DHCPとかで問題が出てしまいそうですね。
教えていただいたページを読んだだけで、
まだ実際に試せてませんので、わかりませんが。
いずれにせよ、知識がまた一つ増えました。ありがとうございます。
784 :
NAME IS NULL:2009/09/18(金) 07:39:00 ID:UJ0y9Auo
基本的でいまさらな質問です。
論理ファイル名は重複しても大丈夫ですか?
DB名 hoge
論理ファイル名 hoge_Data
物理ファイル名 hoge_Data.mdf
DB名 hoge2
論理ファイル名 hoge_Data
物理ファイル名 hoge2_Data.mdf
保存先が異なるなら可
外部キーって親子関係を持つテーブルの整合性を保つのに有用と聞きましたが、
インデックスみたいにパフォーマンスが上がったりはしないですよね?
むしろ制約チェック分、わずかに下がる。
社内SEでDBとPGめんどうみてるんだけど
開発終わったらすることなくなっちゃった
毎日定時まで2chとまとめサイトめぐりしながら
時々Excelがどうのメールが調子悪いの対応のみ
周りは素人ばっかだからこっちがひまなのも
わからないみたいだけど・・・
時々時間のかかるクエリをチューニングしたりして遊んでます
>>789 つAzure SQL Services
>>789 お、おれもおんなじようなものだ。
いいよね、この仕事。
それで給料がよけりゃうらやましいな。
やりがいはまずなさそうだな。
会社やばいときは一番に切られる部署じゃないの?
1人だけならそうでもないのかな。
でもやっぱ目的意識の薄いネットサーフィンよりちゃんとした仕事をやってるほうが
時間経つの早いよね。夜もぐっすり眠れるし。
今日も何もする事がなかった
CLR TVFで遊んだりしてたけど
けっこう便利だね
いい身分だな・・・俺はコボルのリプレースで死にそうだ・・・
この会社入るんじゃなかった・・・。コボラー市ね・・・
コボルとかみたことないわw
そういうポジションは経費節減とかで、なんでもかんでも内製内製って言って、
いろいろ押し付けられる…
で、結局外に出すよりコストがかかって、質の悪いものが出来上がるwww
コボルは汎用機ではまだまだ現役だからね。
うちなんてアセンブラの仕事も来るし。
そうだな、客先に2000どころか7.0使っているところも残っているのが現状だ
いい加減制限も多くなってきたし2005か2008にしてくれって思っているが
Windows7にSQLServer2008EnterpriseEdition をインストールしようとしたら、
setup.exeを実行したときに
--------------------
プログラム互換性アシスタント
このプログラムには既知の互換性の問題があります。
SQL Server のセットアップが完了したら、このバージョンの Windows 上で SQL Server 2008 を実行する前に SQL Server 2008 Service Pack 1 (SP1) またはそれ以降の Service Pack を適用する必要があります。
[^] 詳細の非表示(D) [ ] 今後、このメッセージを表示しない(O) [オンラインで解決策の有無を確認する(S)] [プログラムを実行する(R)] [キャンセル]
--------------------
が表示されたので[プログラムを実行する(R)]を押したら、
---------------------------
Microsoft SQL Server 2008 セットアップ
---------------------------
Microsoft .NET Framework 3.5 SP1 のインストールに失敗しました。
SQL Server 2008 セットアップを実行するには、.NET Framework 3.5 SP1 がインストールされていることが必要です。
---------------------------
OK
---------------------------
と表示されました。.NET Frameworkはすべてインストールされているのですが、
どうしたら解決できるでしょうか?
>>802 両方とも自社製品なのに適当だよね・・・
カラムがa,b,c,d,eとあり主キーが(a,b,c)で定義されているhogeテーブルが
あるのですがこのテーブルに大量のデータが登録してるとして
select * from hoge where c = 'hoge'
というように主キーの中の一つのカラムだけで検索する場合も
インデックスは有効になるでしょうか?
あるいはcカラムのみでインデックスを作成する必要があるでしょうか?
>>803 .Net系のウリってこの手の問題が生じないとか言ってなかったっけ?
806 :
NAME IS NULL:2009/09/30(水) 13:34:56 ID:RrXQnUyz
今時64BITなのにたった5000行の行ロックでテーブルロックにエスカレーションしてしまうDBって何なんだろうね
閾値変更したらええやん
できたと思うけど。
>>804 一般的には有効にならない
主キーを(c,a,b)とかにすると有効
ただし、インデックス使うかどうかは最終的にはオプティマイザの判断
実際のデータで実行計画とってみないとわからん
>>804 まねじめんとすたじおで実行計画見ればすぐわかる
ただしデータ少ないと変わっちゃうからきをつけてね
それと1万行はいっててうち5000件がhogeとかいう場合も
実行計画変わってくるから
まぁいろいろやってみて
けっこう賢いよね今のオプティマイザ
>>804 そのクエリが遅いならcカラムに非クラスタ化インデックスを追加するのも手。
>>802 >.NET Frameworkはすべてインストールされているのですが、
どうやってインストールしたのか言ってみ。
>>802 SQL Server 2008の動作要件OS
Windows Server 2008 Standard、Enterprise、Datacenter
Windows Vista Ultimate Edition、Home Premium Edition、
Home Basic Edition、Enterprise Edition、Business Edition、
Windows Server 2003 Standard Edition、Enterprise Edition、
Datacenter Edition (各エディションに Service Pack 2 以降が必要)
Windows XP Professional Edition (Service Pack 2 以降が必要) *1
>>813 Windows 7 にインストールする場合には、SQL Server 2008 をインストールした後、SQL 2008 をSP1にすればいい。
815 :
802:2009/09/30(水) 22:47:35 ID:RD7oC5Yc
解決したわけではないのですが・・・。
どうやらEnterpriseEditionはWindowsServer2008でも対応していないようです。(StandardやExpressはOK)
よって、Windows7でもだめなのかなと。
急遽、ExpressEditionを試したらあっさりと成功しました。なんだかなぁ。
ちなみに、.NET Framework3.5ですが、Windows7の3.5は若干バージョンが違うそうです。
インストール時に問題があったのはそのせいなのかもしれませんね。
816 :
802:2009/09/30(水) 22:51:11 ID:RD7oC5Yc
>>812 Windows7には元々2〜3.5までの.NETFrameworkがインストールされていて、レジストリでも確認しました。
せっかくTechnetを契約してすべてのEditionが使えるのだから一番上を・・・と思ったのが間違いだったのかもしれませんね。
>>814 下のEditionをインストールした後にアップグレードすればいけるかもしれませんね。
後日試してみます。
>>815 >どうやらEnterpriseEditionはWindowsServer2008でも対応していないようです
さらっと信じられない事を書いてるんだが、根拠がある発言なのか?
2008R2 と書きたいんじゃないのか
819 :
802:2009/10/01(木) 05:43:54 ID:9eUKV+AB
>>806 ロックエスカレーションをしない設定もあったはずだぞ
Foundation はおまけみたいなもんだからだろ。
>>819 Windows Server 2008 Foundationは、Windows Serverの機能制限版。
823 :
802:2009/10/01(木) 10:00:48 ID:???
>>821 >>822 なるほど。それは知りませんでした。
上位のEditionで使えないというのも変だなとは思っていたんですけど・・・。
変な情報を流して失礼いたしました。
少なくとも*2の続きを読めば制限版だということはわかると思うんだけどねw
各Editionの概要はそのうち覚えるよ。以下引用
Windows Server 2008 Foundation に対応する SQL Server 2008 のエディションは
Standard、Workgroup、Express with Advanced Services、Express with Tools および Express になります。
Enterprise をご利用いただくことはできませんのでご注意ください。
なお、Windows Server 2008 Foundation の制限により、最大8GB メモリおよび 1 プロセッサに制限されます。
SQL Server 2008 Standard および Workgroup ではそれぞれ最大 4 プロセッサもしくは 2 プロセッサが
サポートされますが、Windows Server 2008 Foundation での利用に関しては OS 側の制限が優先されます。
メモリ容量に関しても同様です。
SQL Server 2008 Standard/Workgroup の機能をフルに活用いただくようなケースでは
Windows Server 2008 Standard をご利用ください。
SQL Server 2008のWindows7対応ってどっかにアナウンスされてる?
Windows7 ProfessionalにDeveloper Edition入れたいんだが、サポートされてるんだろうか?
他のEditionがサポートされてるんならそれでもいいんだが
SQLServer2008R2のレプリケーションは、Workgroupからピアツーピア使い放題なのかな?
827 :
NAME IS NULL:2009/10/10(土) 00:30:05 ID:8q3vOXdH
>>820 2008からはテーブル単位にロックエスカレーションしない設定にはできるようになったが、
いまだにロックに使うメモリ使用量が少ないと言う理由でエスカレーションのメリットを必死で説明し、
技術力の無さをさらけ出しているのがマイクロソフト。
そもそも必要最小限のロックが簡単にできないことが問題なのに…
@インデックスが無い項目を条件にSELECTした際に
無関係の行までロックに巻き込まない。
Aページ内のすべての行がロックされたらページロックに変換
Bテーブル内のすべてのページがロックされたらテーブルロックに変換
これが適切にできてれば、いい加減な仕様のロックエスカレーションなんて
そもそも必要ないだろ。
828 :
NAME IS NULL:2009/10/10(土) 01:33:18 ID:mGLgFlDx
集計関数使わずに、単に重複を取り除いたデータを取得したい場合って、
select a, b, c from table1 group by a, b, c having a = 'hoge'
と
select DISTINCT a, b, c from table1 where a = 'hoge'
これどっちが速いんでしょうか。
データ量増えてくると、実行時間って変わってきますでしょうか?
主キーが(a, b, c)で、バージョンは、SQL Server2000です。
>>828 select a, b, c from table1 where a = 'hoge' group by a, b, c
感覚としてDISTINCTの方が速そうなのに
ちょっと複雑な条件とかが組み合わさると時々あほな実行プランになってしまうので
GROUP BYの方が安定するのが悲しい。
あと実行プランを見るとhavingに普通の条件を書くとwhere句に展開されてるよ。
>>829 GROUP BY 使っといた方が無難なんですね。。。
実行プランも確認して検討してみます。
ありがとうございました。
今時六エスカレーションなんてほとんど発生しないよ。
ぐだぐだ言う前にてめえのクエリ見直せっての。
ばーか。
832 :
NAME IS NULL:2009/10/10(土) 10:03:00 ID:3lzW6yYj
>>831 キー指定でSELECTするだけならな…
テーブルスキャンになる場合、関係ない行まで大量にロックされるから簡単にエスカレーションの閾値を超えちゃうよ
検索条件に含まれる column にはすべてインデックスを張ることを推奨してるよね
マイクロソフトは
なにそのISAM的な発想。
>>831 前世紀(nifのフォーラム辺りで)から言っているよな。
836 :
NAME IS NULL:2009/10/10(土) 21:19:31 ID:uOYf37+N
エスカレーションロックはシステムリソースの過度な消耗を避けるため?
いまどきのPCサーバは十分にメモリ積むんだから、READCOMMITED SNAPSHOTをデフォルトの値でいいよ。
>>831 最後の1行でおつむの弱い人だということがわかりました。
いまさらデフォルトのアイソレーションレベルを変えられるのも困る
なんかバグってそうだし
839 :
NAME IS NULL:2009/10/12(月) 13:43:07 ID:gqOl/NO2
READCOMMITED SNAPSHOTをデフォルトの値にしてもやっぱりインデックスがないと
更新ロック(UPDLOCK,ROWLOCK)かけてから一括処で処理するような
ストアドが同時に流れたとき、同じデータを見ることは無いはずなのに
やっぱり処理が直列化しちまう。
どこがORACLEと同じ動きなんだよ…orz
840 :
NAME IS NULL:2009/10/12(月) 14:52:28 ID:pGg/VZEt
SQLServer自体 Sybaseからのものだから、エスカレーションロックにこだわってる印象があるんだよな。
普通の感覚でSELECTでロックは無いわ。
場合によるいけど、ダーティーリードを許したくないから、読み取り一貫性が重要なんだよな
READCOMMITED SNAPSHOTがあるだけマシ
>>839 そういうケースは、READCOMMITED SNAPSHOTではなくて
SNAPSHOT分離レベルを使わないと。
Reporting Servicesって結局まともに使ってる人いるの?
>>842 使ってるよ
思ったより簡単だった
毎日バッチで売り上げ集計してその後にグラフ入りレポート作って
pdfで吐くみたいな
今度納めるシステムに使います。
CrystalReportとかActiveReportよりも使い勝手いいのかね?
846 :
NAME IS NULL:2009/10/12(月) 22:09:49 ID:yj60iVkI
IIS7 で Classic Asp うごかすのえらい苦労したんで
ポイントかいておくね。なんかわけわからず土曜日からはじめたけど
半年かかるかとおもってしらべてたけど2日でわかった。
これでAccessもSQL SERVER もWEBでうごくから。
ツール使いなれてないんで
ASPXより得意だし融通きくしね。
1 コントロールパネル のプログラムと機能で IIS7 の設定に
ASP のチェックする
2 ● IIS7の アプリケーション プールの設定で
プロセスを「NETWORK SERVICE」から「LOCAL SYSTEM」 にする
>>846 よくわからんが、MSSQLをNETWORK SERVICEユーザから使えるように設定するのではダメなの?
私も似たようなことしたな
IISの公開フォルダのセキュリティに「NETWORK SERVICE」と
「ASP.NET」を追加した
849 :
NAME IS NULL:2009/10/14(水) 20:02:30 ID:m5PwjmaD
>>848 いろいろみてみたが
そのやりかた どうやるの?
851 :
NAME IS NULL:2009/10/14(水) 20:41:11 ID:m5PwjmaD
フォルダを右クリック したあと
なにか 追加するのかしら?
853 :
NAME IS NULL:2009/10/14(水) 21:14:14 ID:m5PwjmaD
>>848 IIS5.XならASPNET、IIS6.0ならNETWORKSERVICE
856 :
NAME IS NULL:2009/10/14(水) 22:14:30 ID:m5PwjmaD
>>854 IISの公開フォルダのセキュリティに「NETWORK SERVICE」と
「ASP.NET」を追加したけど
だめだね。
本当にIIS7でやってるの?VISTAの環境でやってみたけど
下の方法しか動かないよ。
1 コントロールパネル のプログラムと機能で IIS7 の設定に
ASP のチェックする
2 ● IIS7の アプリケーション プールの設定で
プロセスを「NETWORK SERVICE」から「LOCAL SYSTEM」 にする
857 :
NAME IS NULL:2009/10/14(水) 22:18:05 ID:m5PwjmaD
>>856 ちなみに
IISのバージョン関係なしに
>>856 のやりかたで
セキュリティで ASPNET NETWORKSERVICE
追加しなくても動くけどな?
IIS7でも 動く。
そりゃLOCAL SYSTEMってADMINなみの最強アカウントだから
everyoneフルコントロールよりもたち悪いよな
ASP.NETつかえよ
とりあえずIIS7入れてASP構成して、適当なASPコード書いたら動いたわけでして、
>>856のいう「だめだね」ってなにがだめなの?
スレ的にSQL Serverへの接続処理?
ああもちろんLOCAL SYSTEMでWebサーバを動かすなんて事はしていない
863 :
NAME IS NULL:2009/10/14(水) 23:32:43 ID:m5PwjmaD
>>861 ASPもASPXも SQLに接続できない。
だから表示エラー。
HTMは表示すっけどね。
864 :
NAME IS NULL:2009/10/14(水) 23:34:11 ID:m5PwjmaD
>>860 ASP.NETを表示させるのが
VISTA IIS7 環境では これ知らないとマジで苦労すっぞ。
本当に動かないから。それで仕事していたら真っ青になるぞ。
Admin 並というか、Admin 以上。
Vista で IIS なんて使わないだろ普通。
867 :
861:2009/10/14(水) 23:39:45 ID:???
>>863 SQLに接続できないとか言葉がおかしいのは置いといて、接続できない原因は?
そんなことしなくてもASP自体はうごくっしょ(HTMじゃなくてね)
というか、それで仕事してるの?その方が怖い。
868 :
NAME IS NULL:2009/10/14(水) 23:40:28 ID:m5PwjmaD
マイクロソフト がIIS7 いれてるのに
マイクロソフト 大推奨のVB.NETでIIS7使わないわけないだろが。
そもそもみんなそんなとこで真っ青にならないだろw
てか、逆にその設定を見て真っ青になるわwww
必要性を感じた上でそうするなら別だが、とりあえずそうするなんてのは愚。むしろ、悪。
設定見直せ。
アプリから不必要なDBオーナー権限で接続しているさまが目に浮かびますな
くわばら。
871 :
NAME IS NULL:2009/10/14(水) 23:45:11 ID:m5PwjmaD
だから LOCALSYSTEMという設定にアプリケーションプールが
なってるんで アプリケーションプールの設定で
プロセスモデルを LOCALSYSTEM にしないと WEB表示自体されないんだよ。
アプリケーションエラーがでる。
シンプルな構成のサイト一個作って試しなよ
、、、と思ったが、クライアントOS付属のIISってサイト一個しか作れないんだっけ?
> HTMは表示すっけどね。
> WEB表示自体されないんだよ。
どっち?
IISスレいくか?
ていうか別に動いてないわけじゃないし、ID:m5PwjmaDはこの設定で完璧バッチリと思ってるし
わざわざそれじゃダメだなんて説かなくてもいいか
動いてよかったねおめでとう。
874 :
NAME IS NULL:2009/10/14(水) 23:55:22 ID:m5PwjmaD
いや もっとセキュリティが確かで一般的な方法なら
それにしたいよ。
だからわざわざ レスしている。
875 :
NAME IS NULL:2009/10/14(水) 23:56:03 ID:m5PwjmaD
てか WEB板ってあるの?
IIS詳しい板とか。
IIS7.0でASP使うには役割サービスを追加するだけでいい。
ASP.NETも同じ。
何言ってんだか。
コントロールパネル→プログラムと機能→IIS→アプリケーション開発機能で
NET拡張機能 ASP ASP.NETにチェックいれてたよ。
それでもSQL接続がうまくいかないでおちた。
それで ぐぐりまくって 英文でさがして、それらしいのを
ためして 勘で LOCALSYSTEMでやっと動いたという次第。
>>877 だから接続がうまくいかない時のエラーメッセージとかさ。
SQL接続って言葉おかしいし
Microsoft SQL Serverスレだけどさ。
Microsoft = Windowsマシン
SQL = データベース(Access、MSSQL)
Server = Webサーバ(IIS)
の組み合わせだと思ってないか?
880 :
NAME IS NULL:2009/10/15(木) 00:11:19 ID:UuEo0ieE
IIS7は 規定でアプリケーションプールが
ID NETSERVICE になっているわけ。
その状態でやってみるね。
いま簡単なSQLデータベース表示プログラムを簡易につくってみた。
アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------
構成にエラーがあります。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。
パーサー エラー メッセージ: プロパティ 'name' の値が無効です。エラー: プロファイル プロパティおよびグループ名に '.' は使用できません。
ソース エラー:
行 64: <profile>
行 65: <properties>
行 66: <group name="ASP.NET" />
行 67: </properties>
行 68: </profile></system.web>
うちは規定でNetworkServiceになってるわ
>>879 SQL SERVER 2005だよ。
ASPのが詳しいけど、
ASP.NETはためしで STUDIOで作ってみた。
>>882 じゃあIISの話がスレ違いだということは分かるよな
>>883 IISのスレッドってどっかにあるの?
SQL SERVER だから当然IISでWEBやっている人多いと思って
レスしたんだけど。アパッチよりIISのが多いでしょ?
ORACLEじゃないし。
もしくはくだ質だろうな。少なくともここじゃあない
>>863 おまい、SQL に接続するときの接続文字列を書いてみろ。
888 :
NAME IS NULL:2009/10/15(木) 00:42:30 ID:UuEo0ieE
ASP
strConnection ="Provider=SQLOLEDB;Data Source=XXX-PC\SQL2009;" _
& "Initial Catalog=master;User ID=sa;Password=ZZZ"
set cnn = server.CreateObject("adodb.connection")
cnn.open strConnection
ASP.NET
ConnectionString="server='XXXX-PC\SQL2009'; user id='sa'; password='ZZZ'
ん?おかしくね?
ASP.NETの場合はApp_Dataに.mdfファイルをいれてるんだよな?
890 :
NAME IS NULL:2009/10/15(木) 00:54:33 ID:UuEo0ieE
ASP.NET 修正 コピペ間違い。
"server='XXXX-PC\SQL2009'; user id='sa'; password='ZZZ'; database='master'"
とりあえずASP.NETの話はスレ違いなんだが
まずASP.NETを勉強してくれとしか言えんな
何が原因で動いてないのかもわからず適当に設定して
動きました、って、なんの参考にもならん
すくなくとも>880は(ASP.NETの)プロファイル機能の使い方が間違ってるってエラーで
示してる範囲ではSQL Serverは関係ない
道理で過疎ってるわけだ。
フォローthx
896 :
NAME IS NULL:2009/10/15(木) 11:41:20 ID:3rUfd4Hh
SQL Server 2005 Express Editionの
同時利用CPUが1プロセッサというのはどういう意味でしょうか?
デュアルCPUでは使用できないといういみですか?
それともデュアルでも1CPUのみ使用するという意味ですか?
後者
898 :
NAME IS NULL:2009/10/15(木) 14:57:59 ID:3rUfd4Hh
ありがとうございました
FileStreamを使って問題が出た方いますか?
以前にどこかでそういう記事を見た記憶があるのですが。
また、実装する時に気をつけなければならない点などありますでしょうか?
んー、随分ぐぐってみたんだが・・・
今DB監査しようとしてて、SQLプロファイラで情報撮ってみたら・・・内容が過剰すぎてこまっとる
select a,b,c from 危険テーブル where 〜 (実行した奴:hoge)
を実行したら、
"select","危険テーブル","hoge"
って程度が欲しいんだけど、何か良い方法はないだろうか?
良い監査項目があるか、またはSQL文を投げたら「こいつはUpdate」「こいつはDELETE」って
返してくれるSPとかあればな、と思って居るんだが
SQLチューニング時にはSQL全文要るかもしれんが、監査で皆そこまで要るんだろうか?
たとえば1000文字超えるようなSQLだって有るわけだし、俺的には丸ごと出力なんてウザ過ぎると思う・・・
俺はそれに対する答えを持ち合わせていないが、
とりあえずログから必要な部分を抽出するスクリプトでも作っておいたら?
>>901 一応直接文字列的に処理するのは、考慮しつつも最後の手段
工数かけたくないのよね・・実行計画覗くとかしかないかなぁ・・・
スマートじゃないが、数時間で出来る暫定対処として挙げたんだが、
ちょっとしたスクリプトをはさむのにそんなに工数がかかるなら
なんとか1-2日ぐらいで調査して対応できるといいね。
監査なんだから、やったことが完全にわからないと意味ないだろ
SQLが記録されてるからってそれ全部見る必要なんてないし
オブジェクト権限で使った権限とオブジェクトだけ見ればいいんじゃね
あー、自分も障害調査とかでプロファイラ投げられることはたまにあるなぁ
そういう時はとりあえずTRCファイルを一時テーブルにBULK INSERTで突っ込んで
TextData列をLIKE使って少しずつ問題ありそうなテーブルとか条件をしぼって確認していってる
データベースのコピー方法がわからん
SQL Server Enterprise Maganerで、データベースを右クリック
「すべてのタスク」→「データのエクスポート」
で、同じ鯖の別のデータベースにコピーしたんだけど
テーブル・構造はそのままだけどなぜかデフォルト(既定値)のみ引き継がれない
これってバグ?
ちなみにSQL Server2000だと思う
デフォルトって何さ
デフォルト制約のことを指しているわけ?
既定値って書いてあるところから想像すると、カラムの規定値か?
そこで疑問なんだけど、エクスポートデータにテーブル構造入ってたっけ?
SQLServerのエクスポートってデータのみだったような…
もともとOracleしか知らない、にわかSQLServerユーザだから間違ってたらゴメン。
オプションで何をエクスポートに含めるか選べるようになってたような記憶が
mdfとldfをコピーしてマウントした方が確実じゃまいか
>>907 こないだ俺もそれで悩んでた。
テーブルとデータはコピーされるんだけど主キーとかインデックスがコピーされない。なぜだ?
結局SQLスクリプト生成でCREATE TABLE文とCREATE INDEX文作ってテーブル作成後にデータだけコピーしたよ・・・
>>913 だって、「データ」のエクスポートであって
テーブルのエクスポートじゃないぞ
テーブルの制約がエクスポートされなくても当然だろう
>>912 それだとDB止めないとダメだから
素直にバックアップしてリストアすればいいだけだと思うんだが
AccessでSQL Serverでつないだとき、テーブルの中のデータが途中までしか表示されない
SQL Enterprise Managerでつないだときは全部表示されるんだけど…
なんでだろ
>>915 accessの方でレコード数の設定みたいなのがあった気がする
すみません、質問です
SQL Server[Japanese_CI_AS]とJava[windows932]でWebアプリを組んでいるのですが、
掲示板に書き込みなどしたときに文字が「???」のように文字化けします
これは何が原因なのでしょうか?
918 :
NAME IS NULL:2009/10/24(土) 16:40:36 ID:NNmZ6L5g
珍しい組み合わせでWeb作ってるなぁ
上のAccessも文字コードについてもSQL Serverはあまり関係なくね
920 :
917:2009/10/24(土) 20:25:43 ID:h/vcPXJ+
ちなみに下記のドライバを使っています
com.microsoft.jdbc.sqlserver.SQLServerDriver
ドライバというかEncode
922 :
917:2009/10/24(土) 20:48:00 ID:h/vcPXJ+
JavaのソースはMS932です。
SQL ServerはJapanese_CI_ASです。
JSP のエンコーディングは?
924 :
NAME IS NULL:2009/10/24(土) 20:52:36 ID:h/vcPXJ+
jspもMS932です。
ちなみに、データベースに格納するときに「???」のように文字化けします。
データベースから取り出して表示するとき(あらかじめGUIツールにてデータベースに文字を登録していた場合)は、
正常に画面に表示されます
JISAutoDetect突っ込めばいいだけなんじゃね
SQL Server関係するか?
登録時に文字化けしてるなら、SQL Server の問題じゃないな。
どうやら
jsp→javaで文字化けしているようでした、ご迷惑おかけしました
928 :
900:2009/10/24(土) 23:49:08 ID:???
んー、やはり、無い物ねだりだったかな
SQL文、全部欲しくはないのよ。
対象データを、不正な人間が検索したり、上書きした時点でアウトだしね
(タイムスタンプのフィールドを見ただけだよ!とかいう、子供の言い訳レベルは無視)
それを最初確認するのはユーザ側で、見て判るレベルのリストを展開しないと、意思の疎通すら出来ない。
なので、操作対象テーブルと操作内容までを出して、何かあったら手元の詳細データと突き合わせ・・
という感じの話ですすめていましたと。
お騒がせしました。
>>914 一時DB止められるんだったら、アタッチ&デタッチの方が、楽よ?
止められたらだけど
>>928 ロールの設定すればいいだけなんじゃないかって思い始めた。
そもそも見られたくないユーザに権限を与えてるってのはどうなの。
>>930 そう、まったくもって、そのとおり。「おためごかし」承知の上での案件。
他、言いたいことを山ほど黙った上でのお仕事です。
危ない情報も暗号化してない、ユーザを分けて管理してないからアクセス権も下手に設定できない、
工数・予算はもう勝手に見積もられているからアドリブで動くことも出来ない・解析ツールも購入できない、
そもそもユーザの側のパスワード管理も多分まともじゃない(俺らにExcelでリスト作って持ってくる位だし)、
そんな中でも、出来ることをやりましょうや、無理もしたくないしね、というそんな状態。
直接の担当者に問題があって、これ以上はちょっと無理、という事になってます。
陸軍の牟田口さんのような人で、言質取りながら仕事しないと、危なくてしょうがないんですわ
何押しつけられるか判った物ではないし、責任問題も後々逃げ道用意しながら仕事する人でして・・
ウザイ
え、ユーザ⇔アプリ⇔DBじゃなくてユーザ⇔DBな案件だと言っている?
ウザがられているので最後
>>933 アプリ側で、このVerではログインを監査する機能がない、新Verなら出来ますと
言われてしまったので、仕方なくの代替案です。
そりゃ、5年以上使ってて、全くバージョンアップしてない方が悪いよ・・・高いんだって。
うざいというか、よく分からん内々の事情を語られてもどうにもならん。
いや、情報を小出しにする時点で何がしたいのかよく分からん
ハナから答えを求めようという書き方じゃないだろ
何がしたいか本人にもよくわかってないんだろ
ログインの監査だけでいいのか、データ操作の監査もしたいのか
>904のオブジェクト権限みればって話はまったく無視してるようだし
自分とこの技術力のなさを棚に上げて工数くれないからすごく大変なんですよ、というアピールをしたかっただけと。
よくあるといえばよくあるな。
ただの愚痴でしょ
いいじゃんそれくらい
がんばれよ
俺は今日もする事なくて朝からひまだよ
940 :
NAME IS NULL:2009/10/27(火) 09:57:40 ID:OGwqn9RD
スレチだったらすまん
T-SQLで文字列の大小比較ってどうやればええの?
数値だったら普通に - で比較すれば、いいんだけど
2008のBOLのリファレンス見てるんだけど、いまいちわからん・・・
等号や不等号じゃだめなん?
文字列に大小関係がある、という誤った考えをそろそろ払拭したほうがいいと思う。
943 :
NAME IS NULL:2009/10/27(火) 12:54:30 ID:OGwqn9RD
>>941 うーん 駄目みたい(if文でスルーされてる気がする)
>>942 桁の決まった英数字の比較なので(なんとかコードってやつ)
テーブル値関数でgetしたデータをホスト言語側で対処することにした
#これから、サンプルコードで書いて試すところ
944 :
NAME IS NULL:2009/10/27(火) 13:02:02 ID:OGwqn9RD
>>941 すまん 等号/不等号で大丈夫だった>何やってんだオレorz
#ちょっとテストしてみよ
>>942 文字列に大小関係がないと、文字列はソートできないことになるんだが、それが正しいと?
>>944 text型とかntext型とかだと大小比較できなかったはず
まあ、スルーされるんじゃなくてエラーになった気はするが
思った通りに判定されない場合は照合順序確認すべし
システムの照合順序をインストール後に変えるのって大変だよね?
SQLで指定して乗り切るのかな。
大文字小文字
表示上の ORDER BY で使う順序なら大した問題じゃないけれど
WHERE の中で堂々と文字列の大小関係を書いている SQL 文には萎える。
949 :
NAME IS NULL:2009/10/28(水) 14:08:22 ID:xYYq1/XK
>>945 ありがとう
ストアドの引数varchar(2)とselect で取得した文字列から2文字
取り出しての比較で、希望通りの動きのような気がしてる
すみません、質問いいですか?
SQLServerをC#で動かそうとしています。
ワイルドカード"%"は使えるのですが"_"だとヒットしなくなります。
例えば
〜LIKE" + TextBox1.text+"M"+Textbox2.text+"%";
なら引っかかるのですが・・・
〜LIKE" + TextBox1.text+"_"+Textbox2.text+"%";
だとダメなんです。。。
どこがいけないのでしょうか?
>>950 C#で・・・とかいうのは関係ないし
完成したSQL文を素のまま実行してみたら?
SQLCLRを使ってみようかと試行錯誤中なのですが
SQLServer2008って、.NET3.5に対応していないんですかね?
LINQとやらを試そうとSystem.Data.DataSetExtensions.dllを含む
アセンブリを登録しようとすると、SQLカタログに登録されていないとか
言って怒られてしまいます。
>>953 SQL統合は有効にしてあります。
LINQとか使わないSQLCLRはうまく動いております。
>>954 2005は2.0まで、というのをどこかで見たのですが
2008も同じということですかね…
使えれば便利そうに思えたので残念です。
SQL2008R2CTP のパラレルなんちゃらってどんな機能なんだろ
957 :
NAME IS NULL:2009/11/07(土) 19:56:29 ID:N0odf4U5
ハードウエアパートナーにIBMが加わるというのが興味深い
2008です。SQLServer認証のパスワードの有効期限が切れた場合の話です。
有効期限が切れたログインでSSMSで接続しようとすると、パスワードの変更
ダイアログが表示され新しいパスワードを設定できます。しかし、これをADO.NET
からの接続で、ALTER LOGINで変更しようと思っても、最初のConnectionを
作成するときにエラーになってしまって、ALTER LOGINまでたどり着けません。
SSMSではログインできない状態から、どのようにしてパスワードを変更しているのでしょうか
>>958 プロファイラでどんなSQL飛んでるか調べてみたら?
960 :
sage:2009/11/17(火) 18:17:49 ID:EYJSlw0g
2000SP4です。
稼動して3ヶ月ほどですが、スタートアップ時のサービスの起動に失敗するよう
になりました。エラーログには『オペレーティング システム エラー 32(プロセス
はファ イルにアクセスできません。別のプロセスが使用中です。)』が出ています
が原因がわかりません。何かチェックすべきところがないか教えてください。
その別のプロセスが何か調べたらいい
別スレに投稿して、こっちを紹介されたんでこちらで質問を
------以下 誤投稿コピペ
システムの機能に任意のタイミングで
SQL鯖2008のバックアップを出来るようにしてほしいと言われたんだけど
どれでいこうか迷ってる
@マネージメントスタジオを直で使わせる
Aosqlのバッチを用意して使わせる
B2のバッチをPGからキック
CPGから直でバックアップSQL実行
DSQLDMOを使う
他にもありそうですが、皆さんどのような方法で実装していますか?
あと皆トランザクションをある程度の量で切り捨てなければいけないような環境だと その辺どうしてるんだろう・・・
>>962 マ的な俺はいつもCでやってる。(Bもありかな?)
その主な理由
・顧客によってPC扱いの熟練度があまりにも違うので@などの方法は危なすぎる。
・手順の多い方法だと1度の説明では理解してもらえないことが多く問い合わせの電話が何度も来る。
・PGを作る過程でバックアップやトランザクションに関するSQLの勉強になる。
あとトランザクションを切り捨てるかどうかなども顧客に説明してマネジメントスタジオでやらせようとし
ても表示される情報が多すぎて混乱すると思うよ。これもPGでわかりやすい画面を作ればOK。
まあそんなに工数掛けられない時はマネジメントスタジオの画面ハードコピーをEXCELに貼り付けて
簡単な説明書を作ってそれを送りつけてるけどね。
>>962 SE兼PGで社内システムの開発もしてるけど
Cだな
フルバックアップはPG作成して
あとこっそりトランザクションログのバックアップのメンテナンスプラン作って
エージェントで自動バックアップしてる
トランザクションの切捨てはケースバイケースなんじゃね?
切り捨てる前にトランザクションログバックアップすればいいだけの
ような気がするけど
それか割り切って単純復旧モデルにしちゃうとか
965 :
NAME IS NULL:2009/11/21(土) 20:58:57 ID:2lI7NRKS
>>955 2008のインストで3.5を要求してくるから、何かをつかってるんじゃね?
962は使用する対象によって異なるかな
顧客が使うならBかCだが、客先SEが操作する程度ならA、頻度によっては工数の観点から@かな
まぁシステムの機能に〜って件から前者だと思うけど
5はレガシー機能なので使わないほうがいい。
客がバックアップを任意にとりたい時ってどういう時だろう。
スケジュール組んだらパフォーマンスに影響がでるから?
それなら差分でとるばいいし違うよね。
たしかにSQLDMOは使わないほうがいいな
あとosqlもsqlcmdで検討したほうがいい
どっちもMSDNで使用は避けるように明記されているし
せっかく2008を使うのなら尚更だな
969 :
962:2009/11/22(日) 10:39:30 ID:???
>>964,>>966-
>>968 レスありがとうございます。
皆さんの意見を参考にして、今回はCでいこうかと思います。
で、何故この機能が必要になったかというと、相手側管理者の仕様書に記述してきた特記事項
ツールの使い方教えれればいいんですが、なにぶん知ったか系で中途半端にツール使わせてDBいじられても怖いので
今回は一応直接手が出せないようにしたのです。
(多数派でツールを使わせているのであればそれも検討しようとは思いましたが)
もちろんバックアップに関しては夜間の運用していない時間帯に差分バックアップをやっています。
打ち合わせの段階であれば色々言うこともできたのですが、もうプロジェクトもスタートしてしまって仕様変更が難しいレベルの時期なのでとりあえず付けとこうって発想です。orz
皆さんありがとうございました。
寝たい・・・
クエリ演算子のGroupPartitionはどういうときに使うのでしょうか。
>>968 osqlコマンドが無くなるだけでodbcインターフェースが無くなる分けではないよね。
sql server2005をインストールし、
management studioを起動したら
サーバーへの接続というダイアログが表示し、
サーバー名等に何を入力したら良いのかわかりません、、、
PC初心者スレで質問したら 諦めろ という解答しかなく、、、
教えてください、よろしくお願いします。
(local) って入れてみ。
解答ありがとうございます。
ですが、local でも (local) でもダメでした。。。
認証はwindows認証で良いのですよね?
. (ドット)は?
インストールしたPC名でも桶だよ
あと構成マネージャで共有メモリ、TCP/IP,名前つきパイプ全部有効にしとけ
おおおおおおorz
無事解決しました。
ありがとうございます。
行った手順ですが、
SQLServer2008が干渉しているのかと思い削除
SQLServer2005も削除
再起動
SQLServer2005インストール
で、成功です。
間違ってSQLServer2005のSP2(のみ)をインストールしていたようで。。。。
express editionをインストールしたら成功しました。
973氏、975氏、ありがとうございました。
>間違ってSQLServer2005のSP2(のみ)をインストールしていたようで。。。。
おい!w
入れる時に防御はいってなかったっけか?
何かのソフトを入れたときに一緒に MSDE(の2005版)を入れられちゃってたんじゃないのかな
980 :
NAME IS NULL:2009/11/25(水) 00:50:34 ID:BAdqU46G
R2は複数マシンで並列処理できるんですか?
「management studioだけ」をインストールしたんだろ。
management studio SP2なら差分じゃなくてSP2適用済みフルバージョンだからインストールはできる。
そもそも仮に
>SQLServer2005のSP2(のみ)をインストール
が可能だったとしてもmanagement studioは起動しないだろ。
982 :
NAME IS NULL:2009/11/27(金) 09:43:46 ID:TfIfHlhd
サブスクリプションが非アクティブになるタイミングってどういうときですか?
停電とかって関係ありますか?
停電してから突然エラーが発生してしまったみたいで…
何故どんなエラーなのかを書かないんだ
984 :
NAME IS NULL:2009/11/27(金) 11:55:11 ID:TfIfHlhd
>>983 すみません、
「サブスクリプションは非アクティブになっており、パブリッシャで再初期化する必要があります。」
ということらしいです。
それで、非アクティブになるタイミングを知りたいんですけど…
>>985 それかと思ったんですけど、過去に有効期限切れてても普通にできたらしくって。
全然わからないorz