タグ付けされた質問 「sql-server-2008」

MicrosoftのSQL Serverの2008バージョンに固有の質問には、このタグを使用します。

6
ストアドプロシージャがWebから呼び出されると遅くなり、Management Studioから速くなる
Webアプリケーションから呼び出されるたびにめちゃくちゃにタイムアウトするストアドプロシージャを使用しています。 Sqlプロファイラーを起動して、タイムアウトした呼び出しをトレースし、最終的に次のことを見つけました。 同じ引数を使用して、MS SQL Management Studio内からステートメントを実行すると(実際、プロシージャコールをSQLプロファイルトレースからコピーして実行しました)、平均5〜6秒で終了します。 しかし、Webアプリケーションから呼び出された場合、30秒以上(トレース)かかるため、私のWebページは実際にはそれまでにタイムアウトになります。 私のWebアプリケーションに独自のユーザーがいるという事実は別として、すべてが同じです(同じデータベース、接続、サーバーなど)また、Webアプリケーションのユーザーを使用してスタジオで直接クエリを実行してみましたが、6を超えることはありません秒。 何が起こっているのかを知るにはどうすればよいですか? トレースが遅延が実際の手順にあることを明確に示しているため、BLL> DALレイヤーまたはテーブルアダプターを使用しているという事実とは何の関係もないと想定しています。それは私が考えることができるすべてです。 編集私はこのリンクでADO.NET ARITHABORTがtrueに設定していることを発見しました-ほとんどの場合これは良いですが、これは時々起こります、そして推奨される回避with recompile策はストアドプロシージャにオプションを追加することです。私の場合、動作していませんが、これに非常に似ていると思います。誰もがADO.NETが他に何をしているのか、または仕様をどこで見つけられるのか知っていますか?

8
SQL Serverブラウザを起動できません
SQL Server browserfrom SQL Service Configuration Manager 2008バージョンを起動できません。サービスを開始するオプションは絶対にありません。以下の画像のように無効になっています。サービスを再開するにはどうすればよいですか?

8
TSQL-BEGIN .. ENDブロック内でGOを使用する方法
複数の開発データベースからステージング/プロダクションに変更を自動的に移行するためのスクリプトを生成しています。基本的に、これは一連の変更スクリプトを受け取り、それらを単一のスクリプトにマージして、各スクリプトをIF whatever BEGIN ... ENDステートメントにラップします。 ただし、一部のスクリプトではGOステートメントが必要になるため、たとえば、SQLパーサーは、作成後に新しい列を認識します。 ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL GO -- Necessary, or next line will generate "Unknown column: EMP_IS_ADMIN" UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN = whatever しかし、それをIFブロックでラップすると: IF whatever BEGIN ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL GO UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN …

14
SQL Serverで週の最初の日を取得する
集計した日付を週の最初の日として保存し、レコードを週ごとにグループ化しようとしています。ただし、日付を四捨五入するために使用する標準的な手法は、週では正しく機能しないようです(ただし、日、月、年、四半期、および私が適用した他の時間枠では機能します)。 SQLは次のとおりです。 select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), 0); これは2011-08-22 00:00:00.000、日曜日ではなく月曜日であるを返します。を選択すると、日曜日のコードであるが@@datefirst返される7ので、サーバーは私の知る限り正しくセットアップされます。 上記のコードを次のように変更することで、これを簡単にバイパスできます。 select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), -1); しかし、私がそのような例外を作らなければならないという事実は、私を少し不安にさせます。また、これが重複する質問である場合はお詫び申し上げます。私はいくつかの関連する質問を見つけましたが、この側面に特に対処するものはありませんでした。

7
データベースSQL-Server全体をスクリプト化する
データベースからすべてのテーブル、プロシージャ、その他のオブジェクトのスクリプトを取得する方法はありますか?データベースをスクリプト化するオプションがあることは知っていますが、それは何らかの種類のトップレベルのスクリプトを提供するだけで、すべてのテーブル、プロシージャ、udfs、.etcを作成するためのスクリプトではありません。

3
Microsoft SQL Server Management Studio 2008で特定の行を編集するにはどうすればよいですか?
Microsoft SQL Server Management Studio 2008で、キーに基づいて1つの行を編集できるようにするための秘密はありますか? 「上位200行を編集」するオプションがありますが、他の行を選択してデータグリッドで編集したい場合はどうすればよいですか?updateステートメントをコーディングし、where句をめちゃくちゃにするリスクよりも、そうしたいのです。

7
フルテキストインデックスが作成されていないため、テーブルまたはインデックス付きビューでCONTAINSまたはFREETEXT述語を使用できません
SQL Server 2008 R2データベースで次のエラーが発生します。 フルテキストインデックスが作成されていないため、テーブルまたはインデックス付きビュー 'tblArmy'でCONTAINSor FREETEXT述語を使用できません。

13
SQL Server実行ポートを見つける方法は?
はい私はこれを読んでMS SQL Server 2008のポートを見つける方法は? 運が悪い。 telnet 1433 接続に失敗したため、他のポートを指定する必要があります。 使ってみた netstat -abn しかし、このリストにsqlservr.exeなどは表示されません。 なぜそのポートを見つけるのがそれほど難しいのですか?:/


3
変数付きのt sqlにStartsWithまたはContainsはありますか?
サーバーがExpress Editionを実行しているかどうかを検出しようとしています。 次のt sqlがあります。 DECLARE @edition varchar(50); set @edition = cast((select SERVERPROPERTY ('edition')) as varchar) print @edition 私の場合、 @edition = Express Edition (64-bit) 次の方法を教えてください。(C#に触発された)。 DECLARE @isExpress bit; set @isExpress = @edition.StartsWith('Express Edition');

4
varchar()列を特定の値に制限しますか?
たとえば、MS SQL Server 2008のvarchar列に4つの異なる値を指定する方法はありますか? たとえば、「Daily」、「Weekly」、「Monthly」、「Yearly」のみを可能な値として受け入れるFrequency(varchar)という列が必要です これは、テーブルの作成時にSQL Server Management Studio内で設定できますか?

3
INNER JOIN条件で「OR」を使用することは悪い考えですか?
非常に遅いクエリの速度を改善しようとする際に(問題があった場合、SQL Server 2008では、それぞれ最大50,000行しかない2つのテーブルで数分)、問題を次のようORに内部結合のに絞り込みました。 SELECT mt.ID, mt.ParentID, ot.MasterID FROM dbo.MainTable AS mt INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID OR ot.ID = mt.ParentID これを(私が望んでいる)左結合の同等のペアに変更しました。次に例を示します。 SELECT mt.ID, mt.ParentID, CASE WHEN ot1.MasterID IS NOT NULL THEN ot1.MasterID ELSE ot2.MasterID END AS MasterID FROM dbo.MainTable AS mt LEFT JOIN dbo.OtherTable AS ot1 …

10
SQL Server 2008 Management Studioでtextまたはvarchar(MAX)列の完全なコンテンツを表示するにはどうすればよいですか?
このライブSQL Server 2008(ビルド10.0.1600)データベースにEventsは、textという名前の列を含むテーブルがありますDetails。(はい、これは実際にはvarchar(MAX)列であるべきだと思いますが、このデータベースをセットアップした人は誰もそうしませんでした。) この列には、SQL Server Management Studioを介してアクセスしようとしている非常に大きな例外のログと関連するJSONデータが含まれていますが、グリッドからテキストエディターに結果をコピーするたびに、43679文字で切り捨てられます。 インターネット上のさまざまな場所で、XMLデータに対して取得する最大Tools > Options > Query Results > SQL Server > Results To Grid文字数を無制限に設定して、次のようなクエリを実行できることを確認しました。 select Convert(xml, Details) from Events where EventID = 13920 (データは列ではなくXMLであることに注意してください。CONVERT列をXMLに変換することは、SSMSがtextor varchar(MAX)列からデータを取得することでSSMSが持っている制限を回避するために他の誰かが使用していたことをグーグルから見つけた回避策にすぎません。) しかし、上記のオプションを設定してクエリを実行し、結果のリンクをクリックしても、次のエラーが発生します。 XMLを表示できません。次のエラーが発生しました:予期しないファイルの終わりが発生しました。行5、位置220160。 1つの解決策は、XMLデータ用にサーバーから取得する文字数を増やすことです。この設定を変更するには、[ツール]メニューの[オプション]をクリックします。 では、このデータにアクセスする方法について何か考えはありますか?列を変換してvarchar(MAX)私の問題を修正しますか?


3
DateTime(UTC)の保存とDateTimeOffsetの保存
私は通常、データベースの読み取り/書き込みの直前にDateTime変換(UTCから現地時間へ、および現地時間からUTCへ)する「インターセプター」を持っているので、DateTime.Now心配することなくシステム全体で(派生と比較)を使用できます。タイムゾーンについて。 シリアル化とコンピューター間でのデータの移動については、日時が常にUTCであるため、煩わしいことはありません。 日付(SQL 2008-datetime)をUTC形式で保存し続ける必要がありますか、それともDateTimeOffset(SQL 2008-datetimeoffset)を使用して保存する必要がありますか? データベース(datetime型)のUTC日付は長い間機能していて知られていますが、なぜそれを変更するのですか?利点は何ですか? 私はすでにこのような記事を調べましたが、100%確信しているわけではありません。何かご意見は?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.