X



【新型】SQLServer2005【またか】

0001NAME IS NULL
垢版 |
2005/12/17(土) 00:28:19ID:IWlojdHA
いよいよ発売、新製品。前評判や前型との違いで良くなった点など教えて
ください。よろ。
0142NAME IS NULL
垢版 |
2007/05/30(水) 16:23:12ID:???
2ちゃんねるは便所の落書きだよ、馬鹿
0143NAME IS NULL
垢版 |
2007/06/02(土) 08:30:25ID:???
2000→2005へのアップグレードって
デタッチ&アタッチで簡単に出来るってマニュアルに書いてあったから
軽い気持ちで試してみたら、アタッチした瞬間にDB書き換えられて
元に戻せなくなってビビッた
0144NAME IS NULL
垢版 |
2007/06/02(土) 09:25:54ID:???
>>143
手順として
デタッチ→ファイルコピーでバックアップ作成→アタッチ
だろ、常識的に考えてwww
0145NAME IS NULL
垢版 |
2007/06/02(土) 11:06:59ID:???
>>143
> 軽い気持ちで試してみたら

DB に対する姿勢じゃないだろ

テスト用の DB とかならいざ知らず
0146NAME IS NULL
垢版 |
2007/06/12(火) 09:26:00ID:???
うんこったれーーーーーーーーーー、ここの住人
0147NAME IS NULL
垢版 |
2007/06/18(月) 16:59:25ID:ANx7O37m
SQL Server 2000 を使っていますが
2005 Management Studio Express で
デタッチ、アタッチが出来てしまいます。
今のところ特に問題ないようなのですが。
0148NAME IS NULL
垢版 |
2007/06/18(月) 17:13:17ID:???
投げてるSQL文考えれば当然だろw
0149NAME IS NULL
垢版 |
2007/06/21(木) 23:14:37ID:???
ここでいいのかどうか・・・
今までSQL-DMOのBulkCopyオブジェクトを使って、Native形式ファイルで
レコードのコピーや同期などしてきたんですが、2005のSMOではBulkCopy
に相当するオブジェクトがないんです。SQL-DMOは将来のバージョンで
削除されるとかドキュメントで脅してるし。
同等のことを2005でSQL-DMO抜きでやるにはどうしたらいいでしょうか?bcpはあるようですが
使い勝手が異なりますし、今のところは「将来のことなんか気にしない」と
いう案しかない状態です。
0150NAME IS NULL
垢版 |
2007/06/22(金) 14:44:58ID:???
>>148
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ 
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ 
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ 
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ 
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ 
ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ 
0151NAME IS NULL
垢版 |
2007/06/27(水) 00:30:20ID:6LM5M84P
ExpressにDeveloperバージョンを上書きインストールしたら
Management Studioが二度とインストールできなくなったです

アンインストールからやり直さないとだめ?
0152NAME IS NULL
垢版 |
2007/06/27(水) 18:35:34ID:???
PGなんかビチビチウンチ 
PGなんかビチビチウンチ 
PGなんかビチビチウンチ 
PGなんかビチビチウンチ 
PGなんかビチビチウンチ 
PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ 
PGなんかビチビチウンチ 
PGなんかビチビチウンチ 
0153NAME IS NULL
垢版 |
2007/06/29(金) 13:41:51ID:???
睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 
睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 

睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 
0154NAME IS NULL
垢版 |
2007/06/29(金) 15:34:24ID:ISZccokV
Express Edition使ってみて結構使いやすそうだなとは思ったんだけども、
これって、サーバー機のAdministrator権限とられてしまったら、Server Managerで中のデータ見られるのを
止める手段はないんだろうか?
Accessだったらパスワードつけとけば、開ける人の権限に関係無くとりあえずパスワード要求するようにできるけど、
同じことはSQL Serverではできない?
0155NAME IS NULL
垢版 |
2007/07/02(月) 23:32:53ID:???
>>149
SQL-DMO の SMO へのマッピング
http://technet.microsoft.com/ja-jp/library/ms162159.aspx

>>151
Management Studio と Management Studio Express は違う。
よくわからんがこの辺のことは MSDN フォーラムや PASSJ で議論になってたんで探してみれば?
アンインストールすれば問題ないと思う。Express と Developer だから別にいいだろ。

>>154
BuiltIn\Administrators のアクセスを拒否するのと SQL 認証のログインに sysadmin をつけることは違うことである。
つまり2〜3行目と4〜5行目は異なることを言っていることを自分で理解しているか?
すなわち、最初から与えられている BuiltIn\Administrators への sysadmin 権限を削除し、自分の好きな SQL 認証のログインに sysadmin 権限をつければいい。
0156NAME IS NULL
垢版 |
2007/07/17(火) 11:34:27ID:aGdAaP0x
SQL Server2005 ExpressEditionを、user=sa,password=saでサイレント
インストールする方法はないでしょうか?
0157NAME IS NULL
垢版 |
2007/07/17(火) 12:29:33ID:???
>>156
質問の意図がわからないが、ストロングパスワードでないためにインストールが続行できないのなら
まず最初にストロングパスワードでインストールして、そのあと sqlcmd でも呼び出してパスワードを変更すればよいのではないだろうか。
0158NAME IS NULL
垢版 |
2007/07/23(月) 22:10:35ID:mjrd1iFB
ALTER TABLE で、VARCHARの文字長を変更する事ってできるでしょうか?
一旦DROPしてCREATE TABLEしないとダメですか?
0159NAME IS NULL
垢版 |
2007/07/23(月) 23:17:14ID:???
>>158
できるが、現在列に入っている値より短くしようとするとエラーになってしまい、できない。


DROP TABLE tbl1

CREATE TABLE tbl1(
col1 varchar(10) NULL
)

INSERT INTO tbl1 VALUES('12345') -- 長さ 5 の文字列を入れる
SELECT * FROM tbl1

ALTER TABLE tbl1
ALTER COLUMN col1 varchar(5) NULL

SELECT * FROM tbl1

-- 次はエラーになる
/*
ALTER TABLE tbl1
ALTER COLUMN col1 varchar(4) NULL
*/
0160NAME IS NULL
垢版 |
2007/07/24(火) 10:02:55ID:112f2vEg
>>159
短くはしないので大丈夫です。
うまくいきました。ありがと〜
0161NAME IS NULL
垢版 |
2007/07/24(火) 22:44:50ID:???
チラ裏スマン

DROP TABLE tbl1
CREATE TABLE tbl1(col1 varchar(10) NULL)
INSERT INTO tbl1 VALUES('12345') -- 長さ 5 の文字列を入れる
-- 列の型をチェック
SELECT sys.columns.name, sys.types.name, sys.columns.max_length FROM sys.columns
JOIN sys.types ON sys.columns.user_type_id = sys.types.user_type_id
WHERE sys.columns.name = 'col1'
-- 列の型を変更
ALTER TABLE tbl1
ALTER COLUMN col1 varchar(5) NULL
-- 列の型をチェック
SELECT sys.columns.name, sys.types.name, sys.columns.max_length FROM sys.columns
JOIN sys.types ON sys.columns.user_type_id = sys.types.user_type_id
WHERE sys.columns.name = 'col1'
0162名無しさん@そうだ選挙に行こう
垢版 |
2007/07/29(日) 20:05:34ID:SNTI4W4c
VisualStudioのフリーのやつを入れたら勝手にSQLServer2005が入ったんだけど
これってクエリアナライザとかエンタープライズマネージャのようなツールは無いの?
クエリアナライザがないとosqlでDB作ったりテーブル作ったりせんとあかんの?
0164NAME IS NULL
垢版 |
2007/08/06(月) 16:27:39ID:???
SSASにて、単純にファクトとディメンションを結合した際、配置を実行すると
「バックエンド データベースのアクセス モジュールでエラーが発生しました。
バインドに指定されたサイズが小さすぎたため、1 つ以上の列の値が切り捨てられました。」
というエラーが発生してキューブが作成されないのですが、どこかで
サイズ指定等の処理が必要になるのでしょうか?

ご存知の方よろしくお願いします。
0165NAME IS NULL
垢版 |
2007/08/28(火) 10:53:41ID:T6Q6Hbzt
質問です。
SQLSERVER2005でジョブを作成したところ、ジョブステップの種類が
「Transact-SQL スクリプト(T-SQL)」のストアドプロシージャを起動すると
いったようなジョブは成功で終了します。
しかし、ジョブステップの種類を「ActiveX スクリプト」にしてVBScriptから
上記のストアドプロシージャを起動するジョブにしてみると失敗で終了します。
他にも簡単なVBScriptで試してみても同じく失敗になってしまいます。
失敗時の履歴のメッセージはいつも同じものになってしまいます。
「メッセージ
共有オブジェクトのセキュリティ記述子作成時のエラー (理由: アカウント名と
セキュリティ ID の間のマッピングは実行されませんでした。). ステップは失敗しました。」

ジョブステップの種類を「ActiveX スクリプト」が原因なのかと思い調べてみたのですが、
どうも見つかりません。
ご存知の方がいればどうか教えていただけないでしょうか。
宜しくお願い致します。
0166NAME IS NULL
垢版 |
2007/08/31(金) 01:29:37ID:???
>>165
SQL Server Agent 起動アカウントをローカルの Administrator にしてみたらどうなる?
0167NAME IS NULL
垢版 |
2007/08/31(金) 14:05:41ID:rqI0DdTn
>>166
SQLSERVERの構成で、SQL Server Agent 起動アカウントをローカルシステムではなく、
Administrator権限を持ったユーザに変更したところ動かすことが出来ました。
User権限のユーザでも出来ました。

別サーバの話ですが、こちらは起動アカウントがローカルシステムのままでActiveX
スクリプトのジョブを起動出来ています。
この別サーバと今回のサーバの設定を比べてみても違いがなかったので質問させて
もらったのですが。他に何か方法があるのかもしれません。
これも気になるところですが、ジョブが起動出来るようになったので一安心です。
ありがとうございました。
0168NAME IS NULL
垢版 |
2007/09/01(土) 01:11:36ID:???
>>167
他に方法はもちろんあるよ。要は何のアカウントでそのステップを実行するかを設定すればよい。
ステップに設定することできるし、プロキシを設定することもできる。
エラーが出たときは、多分 LocalSystem とか Network Service で SQLAgent を起動してるのにアカウントを指定していなかったんでしょ。
Books Online にこの辺のことは書いてあるはず。
0169NAME IS NULL
垢版 |
2007/09/01(土) 14:15:17ID:Ce/qr5OD
SQL鯖って どんな鯖?おいしいの?
0171NAME IS NULL
垢版 |
2007/09/01(土) 18:48:10ID:yf7oLqVf
>>168
言われていることが曖昧にしかわかっていない状態なので、もう一度、Books Onlineで調べ直してみます。
ありがとうございました。
0172NAME IS NULL
垢版 |
2007/10/01(月) 12:52:43ID:8KuCs8E+
Browder + WebServer + SQLServer2005という構成にする場合は
プロセッサライセンス買わなきゃダメですよね?
0173NAME IS NULL
垢版 |
2007/10/01(月) 15:59:50ID:???
>>172
Browder ってなに?ライセンスのことは営業か MS のライセンス窓口に電話して聞いたほうがいいよ。
0174NAME IS NULL
垢版 |
2007/10/01(月) 16:50:01ID:???
>>173
Browserの間違いでした。
ありがとうございます。ビルに電話してみます。
0176NAME IS NULL
垢版 |
2007/10/02(火) 10:48:56ID:???
たぶんだけどゲイシ
0177NAME IS NULL
垢版 |
2007/10/20(土) 22:59:09ID:???
クリントンじゃねーのか
0178NAME IS NULL
垢版 |
2007/10/23(火) 08:41:45ID:???
dtsxのパッケージを作成してサーバ側に配置インストールしたんですが動作しません。
開発環境PCのAと、サーバPCのBがあります。
パッケージの作成はAで行い、AのVS2005でのパッケージ作成とデバッグ実行では問題なくSQLが成功します。
buildしてできたdtsxファイルをAで開き、そこから直接実行しても問題なく完了します。

このdtsxをBにコピーし、ダブルクリックから起動して直接起動するとエラーが出ます。
エラー内容はどうも接続部分で躓いている様子です。
SQLServerにパッケージインストールウィザードで配置し、JOBに登録してから実行してもエラーが出て
エラーログなどを見るとやはり接続関係で止まっているようです。

逆、つまりBで実行できてAで実行できないというならわかるんですが(Aで作る時、接続先は外部PCのBへのConnectionになっているので)
Bで実行できないというのがよくわかりません。

外部PCで作成したdtsxパッケージをサーバ側で実行する際、何か特別に設定する事はあるでしょうか?
0179NAME IS NULL
垢版 |
2007/10/23(火) 15:31:52ID:???
>>178
なんでエラーをコピペしないんだ?
0180NAME IS NULL
垢版 |
2007/10/23(火) 15:50:52ID:???
エラー:接続"server.testdb.sa" を取得できませんでした。接続が正しく構成されていないか、この接続に必要な権限が不足している可能性があります。

というエラーです。
開発環境からは接続可能なので、構成の方はあってると思いますし
権限についてもやはり同じdtsxファイルなので変わらないと思うんですが。
そもそもdtsxの構成的にはsaで実行するようにしていますし。
0181178
垢版 |
2007/10/23(火) 18:25:33ID:???
総合スレの存在見過ごしてました。
移動してきます。
0182sage
垢版 |
2007/12/19(水) 23:04:34ID:HdKLBiYz
Microsoftに商用利用でXPにSQLserver入れてもいいか聞いてみた。
回答はXPにはライセンス上サーバソフトは入れてはいけないとのことだった。

じゃあなんでシステム要件にWindowsXPが入ってるんだ!?

0184NAME IS NULL
垢版 |
2008/01/29(火) 08:06:35ID:???
システムデータベースの自動拡張オプションて
どうすれば確認できましたっけ?
電話でたたき起こされて質問されたけど自信なくて答えられなかった
0185NAME IS NULL
垢版 |
2008/02/17(日) 12:58:35ID:???
>>184
クダラネ
大嫌いだよ、お前らみたいなやつら。
0186NAME IS NULL
垢版 |
2008/02/24(日) 21:40:29ID:???
2000と2005って、実際のとこどのくらい性能が違います?
2008がお目見えして、そろそろ移行したいけど、あんまかわらなそうな感じで。
もしかしてpostgresのほうが性能いいんじゃないかとも・・・
2000->2005へ移行されたかたおりましたら、教えていただきたいのですが。
0187NAME IS NULL
垢版 |
2008/03/28(金) 22:40:56ID:???
困ってないなら移行しなくていいと思う
0188NAME IS NULL
垢版 |
2008/03/29(土) 16:12:44ID:???
むしろ移行するな。
0189NAME IS NULL
垢版 |
2008/04/06(日) 10:40:19ID:kF+SrAMX
しかし MSDE 2000 SP4 から SQL Server 2005 Express SP2 にそろそろ移行しようと思う俺がいる。
0190NAME IS NULL
垢版 |
2008/04/06(日) 19:30:19ID:???
Management Studio使いたいとかなら移行しなくても使える
0191NAME IS NULL
垢版 |
2008/04/06(日) 20:51:19ID:+OFkjEmE
サイズが増えるからじゃない?
0192189
垢版 |
2008/04/08(火) 02:31:06ID:???
半年後に SQL Server 2008 が出たら MSDE って加齢臭がしてきそうじゃん
Vista には MSDE 2000 はインストールできないしね・・・
0193NAME IS NULL
垢版 |
2008/04/21(月) 12:00:24ID:???
今までNT4.0&SQL6.5だったんだけど
Win2003server&SQL2005買ってもらったんだ〜
でも移行がめんどい。もう嫌になっちゃった。
0194NAME IS NULL
垢版 |
2008/12/21(日) 17:57:53ID:???
DBの事はあまり知らない上司が
「速度向上の為にvarcharのサイズは4の倍数にするように」と、
オレの部下に指示したらしいのだが・・・
調べてもそんな事かいてある物が見つからない。
0195NAME IS NULL
垢版 |
2008/12/21(日) 23:58:43ID:???
オレの部下=オレオレ詐欺師
0196NAME IS NULL
垢版 |
2009/02/14(土) 20:58:45ID:???
>>194
3の付く数字と3の倍数はアホになるからじゃまいか?
0197SAGE
垢版 |
2009/04/13(月) 19:32:26ID:OYOWw8sg
SQLSERVER2000にて
キーがないテーブルのデータを一意に絞って削除
したいいんですが方法をおして下さい。
オラクルのROWIDみたいな感じです。
0198NAME IS NULL
垢版 |
2009/04/13(月) 19:33:25ID:???
あああああああああああああああ!!!!!!!!!!!!!!!
0199NAME IS NULL
垢版 |
2009/05/02(土) 16:28:35ID:???
質問です。
SQLServer2005 Expressでデータベースの勉強をしようと
考えているのですが、参考にする書籍はExpressとつかないものでも用が足りますか?
(グレードが違うと役に立たない本もあるので…)
自分で中を確認したくても、なにせ田舎住まいなもので
PC関係の本を置いている本屋が周りになく、
通販を利用せざるを得ないのです。
0201NAME IS NULL
垢版 |
2009/07/28(火) 16:27:18ID:6RYCaFK/
EnterpriseMangerからDecimal列(精度29以上)を編集しようとすると
メッセージ「このセルを編集できません」が出て入力できない、
クエリアナライザからだと更新できる。
0202NAME IS NULL
垢版 |
2009/08/18(火) 23:04:27ID:ofDJWcxy
あるPOINTから最も近いLINESTRING上のPOINTを算出するにはどうしたらよいでしょうか?
以下の方法でやってみましたが、結果が得られないときがあるようで。。。

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(0 0)', 0); -- あるPOINT
SELECT @g.STBuffer(@g.STDistance(xxx)).STIntersection(xxx); -- xxxがLINESTRING
0203NAME IS NULL
垢版 |
2009/08/22(土) 01:24:15ID:dj9Je8J5
>>201
遅レスで申し訳ないが恐らく.NETの制約だと思います。
似たような症状に遭遇した事があり、その時の結論が
『.NETで扱える数値精度の上限に関する制約が原因』でした。
自分で作成したツール(システム)であれ、マイクロソフト純正ツールであれ
.NETフレームワーク上で動作するプログラムであれば同様の現象が起こると思われます。
0204NAME IS NULL
垢版 |
2009/08/24(月) 14:41:12ID:???
他業者の作ったDB解析しなければならないんだけどどうしましょう
0205NAME IS NULL
垢版 |
2009/08/24(月) 14:52:34ID:???
データソースが複雑なら地獄
0206NAME IS NULL
垢版 |
2009/08/25(火) 23:18:35ID:AaegsFre
全項目をバーキャラーの10文字にしようとしたら、
いつも一旦バーキャラー50文字になります。
なぜですか?
0207NAME IS NULL
垢版 |
2009/08/25(火) 23:20:49ID:???
バーキャラーって何か新鮮だな。

単なるデフォルト値だろ。
0208NAME IS NULL
垢版 |
2009/08/26(水) 06:25:56ID:2BVgQnwK
ありがとうございます。
別の質問ですが、私は人の名前もプラグもコードもバーキャラーばかり使っていますが、nバーキャラーの方がいい場合もあるのでしょうか?
0211NAME IS NULL
垢版 |
2009/08/27(木) 00:10:23ID:rMgta9+z
みんなはDBに人の名前を収録するとき、
データ型をバーキャラーとエヌバーキャラーのどちらにする?
0212NAME IS NULL
垢版 |
2009/08/27(木) 07:07:39ID:???
ヌバーキャラーだな。
0213NAME IS NULL
垢版 |
2009/09/05(土) 16:29:51ID:???
Oracleしか使ったことがないので
Expressをインスコして勉強したいのですが
現状2008と2005のどちらが良いですか?
良きアドバイスをお願いします。
当面仕事で使う予定はありません。
0214NAME IS NULL
垢版 |
2009/09/05(土) 17:06:18ID:???
目的を書かないとな。
例えば、資格を取りたいとか、この機能についてOracleとの比較したいとか、単に動かしてみたいだけどかいろいろあるだろ。
0215NAME IS NULL
垢版 |
2009/09/05(土) 18:37:58ID:???
>>214
レスありがとう。やりたいことは

 ・さらからSQL Serverをインスコする
 ・ユーザ,TBL,Viewとか一通り定義できるようにする
 ・VS2008(C#,VB)から接続して使えるようにする
 ・Access,Excelから接続して使えるようにする
 ・OracleとSQL ServerのSQLの違いを勉強する
 (OracleでやってることをSQL Serverで実行するときの変更点とか)
 ・VS2008で開発した場合,なにか便利なことがあったらいいな

というようなことを勉強したいと思ってます。
このとき2008で強化・追加された機能(DBMS管理も含む)やSQLを
当たり前だと思って使ってると,2005の開発を受けたときにツライかな,と。
機能的に大きな変更がなければ2008をインスコしたいのですが,
このあたりのことを,先輩方にアドバイスいただければ幸いです。
0216NAME IS NULL
垢版 |
2009/09/05(土) 22:20:28ID:gCtvokiF
VS2008使うのなら、同じ2008で合わせた方がいいんじゃないか?
管理ツールは、2005と2008で微妙に違うから、どちらか一方で覚えていても
役に立たないケースもある。
個人的にお勧めは、Expressより2008評価版の方が良いと思う。
Expressは機能制限があって、Analysis Services やら Reporting Servicesは
使えなかったような記憶があるんだが。
たしかに、ユーザ,TBL,Viewとかの定義程度なら、問題はないんだが。
0217NAME IS NULL
垢版 |
2009/09/06(日) 10:19:58ID:???
>>216
アドバイスありがとう。
2005と2008どちらでも行けるようD/Lして準備してました。

>VS2008使うのなら、同じ2008で合わせた方がいいんじゃないか?

自分の中でも,これが一番大きくて新しいし2008にしようと思います。
0218NAME IS NULL
垢版 |
2009/10/06(火) 11:22:50ID:???
以下のファイルを取得できるサイトはございませんでしょうか。

ttp://www.microsoft.com/japan/sqlserver/2005/prodinfo/previousversions/trial/2000/download.mspx
SQL Server 2000 120日間限定評価版 Release A
JPN_SQLEVAL.EXE
283997KB

宜しくお願いいたします。
0219NAME IS NULL
垢版 |
2009/10/08(木) 23:51:51ID:E4iw+Qno
サーバにリクエストされたクエリを見る方法ってあります?
トレース?
0222219
垢版 |
2009/10/10(土) 00:44:26ID:eRD5pLZ3
>>220
サンクスこ。
無事監視することができました。
パースしてエラーになる様が見たかったのですが、それは見れないのですね。。。
convert('2009/10/32', 'yyyy/MM/dd')でエラー、的な。
0223NAME IS NULL
垢版 |
2009/10/17(土) 21:48:40ID:???
教えてください。

試しに以下のことをしてみました。

・本人は教科書程度の知識しかない DB の素人
・バージョンは SQLServer 2005 Express Edition
・テーブルには 50 列 10 万件の模擬データを挿入
・当該のテーブルには id に当たる列を主キーに設定しただけで他にはインデクスなどは設定していない
・列の属性は int や char(256) など、かなり適当に設定
・RowNumber と副問い合わせを使用して、レコードの部分抽出を実施
・試験はローカル環境で sqlcmd による SQL 実行の形で行う

部分抽出では全レコード、列を対象に途中の 100 レコードくらいを取得するようにやってみました。

取得する列の数を少なくしたり、抽出するレコードを前の方にしたりすると反応はかなり速いのですが、
全列を対象に後ろの方( 90000 - 90100 など)を設定すると、go を行ってから結果を表示し始めるまでに
30 秒から数分かかることもあります。

部分抽出ではなく条件を設定してのレコードの抽出なら(たとえば id > 0 and id < 100 など)、
もとのレコードの位置に関係なく掛かっても 2 秒程度で返ります。

副問い合わせの内容が全列全件を対象としているので、レコード数を考えれば納得は出来るのですが、
テーブル設計を見直す以外で、部分抽出を速くする方法はないでしょうか。

お知恵を拝借できれば幸いです。
0225NAME IS NULL
垢版 |
2009/10/18(日) 11:37:44ID:???
>>223
>・当該のテーブルには id に当たる列を主キーに設定しただけで他にはインデクスなどは設定していない
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

>取得する列の数を少なくしたり、抽出するレコードを前の方にしたりすると反応はかなり速いのですが、
>全列を対象に後ろの方( 90000 - 90100 など)を設定すると、go を行ってから結果を表示し始めるまでに
>30 秒から数分かかることもあります。

>部分抽出ではなく条件を設定してのレコードの抽出なら(たとえば id > 0 and id < 100 など)、
>もとのレコードの位置に関係なく掛かっても 2 秒程度で返ります。

自分で答えを書いておいて質問なのか?
0226223
垢版 |
2009/10/18(日) 18:39:47ID:???
返信をありがとうございます。
テーブルに工夫を加える以外では無理なのですね。

>>225
今回の件は、テーブルに手を加えず使う方の工夫だけで部分抽出を高速化する余地があるかどうか、
という視点でして。テーブルをやっているのは自分ではなくて、人的環境にも恵まれているとは言えず。
0227NAME IS NULL
垢版 |
2009/10/18(日) 18:43:26ID:???
テーブル作った奴に聞けよ。
0228NAME IS NULL
垢版 |
2009/10/18(日) 21:56:08ID:???
>>226
どう考えても検索する列にインデックス付けなきゃだめでしょう。
0229223
垢版 |
2009/10/19(月) 22:01:38ID:???
ありがとうございます。

今日、DB 担当の人とお話ししました。お説教されました。
なんでも副問い合わせがあるから遅いのは当然で、そんなのなくても出来るそうです。
正直出来るとは思ってませんが、やってくださるそうなので見守ろうと思います。

それとは無関係に、

>・当該のテーブルには id に当たる列を主キーに設定しただけで他にはインデクスなどは設定していない

>取得する列の数を少なくしたり、抽出するレコードを前の方にしたりすると反応はかなり速いのですが、

と言うところから、副問い合わせで row_number と主キーの id だけを取得し、本?問い合わせで
副問い合わせの id を where 句の中で in とか使って条件指定してあげれば本問い合わせで全列を取得しても
コンマ秒程度の応答時間の増加で済むことに気がつきました。

SQL って奥が深いですね。。。
0230NAME IS NULL
垢版 |
2009/10/29(木) 16:13:22ID:S8uUeNI2
topについて聞きたいんだけど
topを使用した場合ってどの順序でselectされるの?
クラスタ化インデックスを作成してる場合は、インデックス順で取得される?
0231NAME IS NULL
垢版 |
2009/10/30(金) 20:32:29ID:???
>>229
重いと思ったら(重そうだと思ったら)
クエリの実行プラン見てみー、結構面白いぜ

>>230
ORDER BYで指定して無いなら、
クラスタ化インデックス順(物理的な格納順)に取り出されて、そのうちのTOP n ですよ
0232230
垢版 |
2009/10/31(土) 15:38:15ID:6m29sTha
>>231
>クラスタ化インデックス順(物理的な格納順)に取り出されて、そのうちのTOP n ですよ
だろうとは思ってるんだけど、どっかにそれが記載された資料ってないかな。

話しそれるけど
topでorder by 指定すると
topで取得したものについてorder byするんですよね。

order byしたものをtopで取得したい時ってどうすんのかな。
↓みたには書けないし。
select top 100 * from (
select * from table order by col
)
0233231
垢版 |
2009/11/02(月) 10:57:02ID:???
http://social.msdn.microsoft.com/Forums/ja-JP/sqlserverja/thread/fdfc07de-8eec-4a47-aad8-d75a52597f0f

MSDNには書いてないね。取得順を気にするならおとなしくORDER BY使えってとこかな。
(後でコード読む人も困るしさ)


SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY COL) AS rownumber, * FROM TABLE) T
WHERE rownumber <= 100

もしくは、

WITH CTE AS (SELECT * FROM TABLE ORDER BY COL)
SELECT TOP 100 * FROM CTE
0234230
垢版 |
2009/11/02(月) 11:01:59ID:???
あ、上のは問題ないけど下のはマズったかも
・・・これだと保証されないんだっけ?
0235230
垢版 |
2009/11/03(火) 01:34:29ID:CNGByaWo
>>233
ありがとう!
そういう書き方ができるんですね。
試してみます。
0237NAME IS NULL
垢版 |
2010/01/31(日) 00:39:21ID:i/zQY3Zu
すいません。 こちらでも聞かせてください。
SQLSERVER2000を混合認証(Windows,SQL認証)で使用しているのですが、
SQLSERVERを起動するとログイン画面がでてこないで、ログイン状態で開きます。
(windows認証にするか、SQLServer認証するかを聞いてくる画面が2005だとでてくる)
どのようにして、2000でログイン画面を出すようにすればよいのでしょうか?
というのはsaのパスワードがあっているかどうか試したいだけなのです。。
0238NAME IS NULL
垢版 |
2010/05/16(日) 17:06:37ID:rM83L9sz
すみません。スレ違いかもしれませんが質問お願いします。

現在仮サーバーに使用している端末のPF量が大きくて困っています。

・環境

XP Pro SP2
SQLServer2005EE
データベース⇒  一つ
テーブル⇒  12個
レコード数⇒  凡そ4万
アクセス端末数⇒  凡そ40台
物理メモリ⇒  2G
PF使用量⇒  1.4G辺りを推移
サーバー端末でのアプリケーション⇒ DBを扱うソフト一つ(ADO.netで非常時接続)

です。

レコードが増えるとこのままPFを使い尽くしてしまうのでしょうか?
PF低減には何が効果的でしょうか。
また、EEではDBは2Gまでと聞いていますが、大体何レコード位まで収められるのでしょうか?

宜しくお願いいたします。
0240NAME IS NULL
垢版 |
2010/06/07(月) 17:42:28ID:???
冗長化したいんだけど、ミラーリングとレプリケーションどっちがオススメ?
レスを投稿する


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