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

SQL Server 2008(メジャービルドバージョン10.00.xxxx)。また、sql-serverでタグ付けしてください。

1
実際の最低の正のREAL番号は何ですか
MSDNによると、REAL番号の範囲は-3.40E + 38から-1.18E-38、0および1.18E-38から3.40E + 38です。明らかに、実際の下限ははるかに低いです。次のスクリプトは、REAL列に1.401298E-45を入力します。 CREATE TABLE a ( r1 REAL NULL , r2 REAL NULL , r3 REAL NULL ) ; GO INSERT INTO a ( r1, r2 ) VALUES ( 1.18E-37, 10 ) ; GO DECLARE @i INT ; SET @i = 1 ; WHILE @i < 20 …

2
毎日99%のインデックスの断片化を防ぐ方法
1日2回挿入される100.000プレーヤー用のハイスコアテーブルがあり、プレーヤーごとに1つのレコードがあります。1日の終わりに、そのテーブルのインデックスのインデックスの断片化は99%です。設定を微調整してこれを防ぐ方法はありますか? CREATE TABLE HighScore( [id] [int] IDENTITY(1,1) NOT NULL, [user] [int] NULL, [player] [int] NULL, [round] [tinyint] NULL, [group] [int] NULL, [rank] [int] NULL, [delta] [int] NULL, [roundpoints] [int] NULL, [totalpoints] [int] NULL, PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS …

1
10 ^ 37/1が算術オーバーフローエラーをスローするのはなぜですか?
最近の大きな数字でのプレイの傾向を続けて、私は最近発生したエラーを次のコードに沸騰させました: DECLARE @big_number DECIMAL(38,0) = '1' + REPLICATE(0, 37); PRINT @big_number + 1; PRINT @big_number - 1; PRINT @big_number * 1; PRINT @big_number / 1; このコードの出力は次のとおりです。 10000000000000000000000000000000000001 9999999999999999999999999999999999999 10000000000000000000000000000000000000 Msg 8115, Level 16, State 2, Line 6 Arithmetic overflow error converting expression to data type numeric. 何? 最初の3つの操作は機能するが最後は機能しないのはなぜですか?そして@big_number、出力を明らかに格納できる場合、算術オーバーフローエラーが発生する可能性があり@big_number / 1ますか?

3
SQL Server 2008の最大テーブル容量
毎年10億行以上をテーブルに挿入するアプリケーションがあります。このテーブルには、いくつか含まれているvarcharとbigintだけでなく、列と1つのBLOB列を。 10億行は、追跡目的で保持される履歴データで構成されます。そのため、このテーブルの最大テーブルサイズに関するこのMSDNの記事に従ってこの構造を続行すると、テーブルの容量に制限があるかどうか疑問に思いました。 そのリンクに記載されているデータファイルのサイズは、テーブルデータファイルグループを参照していますか?

2
ジョブカテゴリのいずれかのジョブが失敗したときにアラート
SQL Server 2008で、特定のカテゴリのジョブが失敗したときに電子メールを送信するアラートを設定することはできますか? SSRSサブスクリプションが失敗するたびに電子メールをセットアップしたいと思っています。これらのサブスクリプションはすべて、カテゴリReport Serverのジョブです。 編集 -SSRSサブスクリプションが失敗しても、ジョブ自体は失敗しないことが判明したため、私の質問はSSRSサブスクリプションの監視の使用には適用されません。しかし、私は私たちの環境で実行している他の仕事についてまだ知りたいです

2
日時列を秒数に変換します
SQL Serverデータベースにdatetime列があります。 列のlong値を表す新しい列を作成する良い方法は何datetimeですか?long秒数を表します。 これをlongsに変換できれば、長い数を固定量で除算できるので、期間ごとのクエリによるグループ化が簡単になると思いました。 テーブルは静的であり、データを更新または削除しません。

2
HierarchyIdでツリーブランチをロード/読み取るためのセットベースの方法はありますか
HierarchyIdをいじっていますが、次のことを行うためのセットベースの方法を理解していません。 すべてのサブツリーを一度に挿入する 一度にすべてのサブツリーを取得する この質問は以前の質問に関連しており、HierarchyIdでこれらの2つのタスクを実行する唯一の方法は、一度に1つのノードまたは1つのレベルであると思われます。実体化されたパスを使用している場合、両方のアクションは、単一の(そして些細な)セットベースのコマンドによって簡単に実行されます。 私は何が欠けていますか? 編集:サブツリーを移動する方法も見逃しましたが、ミカエル・エリクソンのコメントからそれを学びました

5
SQLプロファイラーはサーバーのパフォーマンスに影響しますか?
SQL Server 2008が高負荷で失敗するという問題に直面しています。その荷重ケースを見つけて、荷重を処理できるようにコードを最適化する必要があります。私はインターネットでSQLプロファイラーを使用してデータベースの相互作用を追跡し、後で分析して問題が発生する正確なポイントを見つけることができることを発見しました。SQLプロファイラーを起動する方法についても発見しました。しかし、私の質問は、SQLプロファイラーを起動することで、サーバーのパフォーマンスに影響を与えるということですか?

4
「クライアント処理時間」が長いためにリモートSELECTステートメントが遅いが、ローカルでは速い
実稼働サーバー(SQL Server 2008、非常に強力なマシン)に接続している間、このSELECTステートメントは2秒かかり、すべてのフィールド(合計4 MBのデータ)を返します。 SELECT TOP (30000) * FROM person WITH(NOLOCK); 同じネットワーク上の他のボックスから(SQL認証またはWindows認証を使用して接続)、同じクエリに1分8秒かかります。 私はこの非常に単純なステートメントでテストして、それが索引付けの問題やクエリ関連の問題ではないことを示しています。(現在、すべてのクエリでパフォーマンスの問題があります...) 行はチャンクで提供され、一度にすべてではありません。最初の行をすぐに取得し、行のバッチが入るまで1分以上待ちます。 クエリがリモートボックスから実行されたときのクエリのクライアント統計は次のとおりです。 Query Profile Statistics Number of INSERT, DELETE and UPDATE statements 0 Rows affected by INSERT, DELETE, or UPDATE statements 0 Number of SELECT statements 2 Rows returned by SELECT statements 30001 Number of transactions 0 …

2
bakファイルをより小さいmdfおよびldfデータベースファイルに復元する
私はレガシーデータベースの設計に悪夢のような欠如があるので、ここでは触れませんが、サーバー上のファイルは(比較的)巨大です。私が持っています: MyDatabase.mdf:24.8GB MyDatabase.ldf:114.6GB このデータベースは毎晩.bakファイルにバックアップされ、レポートサーバーに送られ、そこで復元されます。.bakファイルは、わずか1.8 GBと非常に小さくなります。 ただし、レポートサーバーで復元しようとすると、スペース不足のため失敗します。サーバーには約100GBの空き容量があり、元のサーバーでファイルが消費した139.​​4GB全体を消費しようとしています。圧縮に関する私の知識がひどく間違っているのでない限り、1.8 GBのファイルが実際に7400%拡大されていないことにはかなりの自信があります。 私の質問:そのスペースを事前に予約せずにこのバックアップファイルを復元するようにSQL Serverに指示する方法はありますか?ログは気にしません。そこにデータが必要です。開発とスキーマの観点からデータベースを理解していますが、私は決してDBAの一種ではありません。 これはSQL Server 2008 R2にあります。助けや提案をありがとう。

2
ユーザー定義のテーブルタイプを含むsp_executesqlが正しく動作しない
問題:sp_executesqlへのパラメーターとしてユーザー定義のテーブルタイプに既知の問題がありますか?回答-いいえ、私はばかです。 スクリプトを設定する このスクリプトは、テーブル、プロシージャ、ユーザー定義のテーブルタイプをそれぞれ1つ作成します(制限付きのSQL Server 2008以降のみ)。 ヒープの目的は、はい、データがプロシージャに入ったという監査を提供することです。制約はなく、データの挿入を妨げるものはありません。 このプロシージャは、ユーザー定義のテーブルタイプをパラメータとして受け取ります。プロシージャが行うことはすべて、テーブルに挿入することです。 ユーザー定義のテーブルタイプも同様に単純で、単一の列です 私は以下に対して実行しました、11.0.1750.32 (X64) そして、10.0.4064.0 (X64)はい、私はボックスにパッチを当てることができることを知っています、それを制御しません。 -- this table record that something happened CREATE TABLE dbo.UDTT_holder ( ServerName varchar(200) , insert_time datetime default(current_timestamp) ) GO -- user defined table type transport mechanism CREATE TYPE dbo.UDTT AS TABLE ( ServerName varchar(200) ) GO -- stored …

2
個別のスキーマを使用すると、SQL Server 2008のパフォーマンスにどのような影響がありますか?
SQL Server 2008データベースで、目的の異なるオブジェクトに個別のスキーマを使用したい。今のところ、テーブルやストアドプロシージャの目的を示すためにかなり気の遠くなるような命名規則を使用しており、プレフィックスは、一意の名前の始まりを確認する前に5つまたは6つのxharacterをスキャンする必要があることを意味します。UIを駆動するためだけに使用されるテーブル(メニュー、ユーザー別の役割など)と、ディメンションテーブルとファクトテーブルなどのスキーマに別々のスキーマを使用したいと思います。 私の質問は、複数のスキーマ(スキーマ?)を使用することによるパフォーマンスへの影響はありますか?

3
SQL Server 2008 / R2復旧モデル
特定のサーバー上のほとんどすべてのデータベースは完全復旧モデルを必要とせず(トランザクションログのバックアップは行いません)、デフォルトでは常にデータベースを作成して単純復旧モデルを指定する必要があります。 多くの場合、特定の実際的な理由により、SSMSを使用して多くのデータベースが作成されます。ただし、ミスが発生する可能性があり、オペレーターは単純復旧モデルの指定を忘れることがあります。これにより、数日後、切り捨てられなかった60 GBのログファイルが3つまたは4つあるために、ボックスがディスク領域に苦しむ「驚き」が生じます。 シンプルリカバリモデルを新しいデータベースのデフォルト設定にするには、modelデータベースでリカバリモデルを構成します。しかし、これが推奨されますか?これを行うと、将来的に戻って何らかの形で私に噛まれる可能性がありますか?

2
@table_variableまたは#temp_table
129列の大きなユーザー定義のテーブル型変数があります。このテーブル変数に一度に約2000〜3000個のレコードを格納し、それをさまざまなストアドプロシージャと関数に渡して、追加のデータを取得して変更を加えます。これらの追加データと新しい変更は、同じタイプの新しいテーブル変数に格納され、OUTPUTパラメーターを介してソースストアドプロシージャに返されます。(これは、テーブルタイプのパラメーターをとしてのみ渡すことができるためREADONLYです。) これは私の疑似コードです: SP1 @tmp tableType { INSERT @tmp EXEC SP2 (@tmp) INSERT @tmp EXEC SP3 (@tmp) } @table_variableまたはを使用する必要があり#temp_tableますか?

1
非エンタープライズ版とパフォーマンスのnoexpandヒント
パフォーマンスを上げるには、インデックス付きビューを使用する必要があります。この比較表からわかるように、Standard Editionはインデックス付きビューをサポートしていません。しかしBOLは言う: インデックス付きビューは、SQL Serverのどのエディションでも作成できます。SQL Server Enterpriseでは、クエリオプティマイザーは自動的にインデックス付きビューを考慮します。他のすべてのエディションでインデックス付きビューを使用するには、NOEXPANDテーブルヒントを使用する必要があります。 それでうまくいくでしょう(私はパフォーマンスについて話している) select * from dbo.OrderTotals with (noexpand, index=IXCU_OrderTotals) SQL Server Standardエディションと同様に select * from dbo.OrderTotals エンタープライズ版では? ビューのコードは次のとおりです。 CREATE VIEW dbo.OrderTotals WITH SCHEMABINDING AS select OrderId = r.OrderId , TotalQty = SUM(r.Quantity) , TotalGrossConsid = SUM(r.Price * r.Quantity) , XCount = COUNT_BIG(*) from dbo.Order r …

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