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

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

1
ビューでOPENQUERYを使用することのパフォーマンスへの影響
stackoverflowでこの質問を参照してください。 EasySoft ODBCドライバーを使用して、SQL Server 2008 R2 ExpressインスタンスをInterbaseにリンクしていますが、リモートサーバーからメタデータを取得するのに多少苦労しています。ネット上で見ると、主な提案はすべて、4つの部分のリンクサーバー構文の代わりにOPENQUERYを使用することに言及しています。 EG現在の(問題のある)アプローチは... CREATE VIEW [LIVE].[vwPRDETS] AS SELECT * FROM [LBLIVE]...[PRDETS] WITH (NOLOCK) しかし、いくつかのテーブルでは、ビューを呼び出すときにエラーが発生します... メッセージ7353、レベル16、状態1、行1リンクサーバー "LBLIVE"のOLE DBプロバイダー "MSDASQL"は、一貫性のないメタデータを提供しました。コンパイル時に見つからなかった追加の列が実行中に提供されました。 また、次のようになったために作成できないビューもあります... メッセージ7315、レベル16、状態1、行1リンクサーバー "LBLIVE"のOLE DBプロバイダー "MSDASQL"には、名前 "" SYSDBA "。" AUDIT_LBABKP ""に一致する複数のテーブルが含まれています。 ただし、言及されている表は1つだけです。 ネットを検索する別の方法は、もっと似ているようです... SELECT * FROM OPENQUERY(<linked sevrer>, 'SELECT <column list> FROM MyTable') したがって、私の質問は、ビュー定義でOPENQUERYを使用すると、SQL ServerはInterbaseに送信される結果のSQLを最適化できますか?それとも、2つのアプローチの間にそれほど大きな違いはありませんか? それはクロスオーバーの主題であり、dbaのPOVが大好きです。

1
単一のデータベースに対する一括挿入権限
私はまっすぐなITセキュリティマナーを持つ会社で働いています。私たちのチームのいくつかのプロセスを最適化するために、データベースアナリストとして雇われました。問題は、読み取りと書き込みのアクセス許可しか持っていないことと、データベースの高度なアクセス許可を取得しようとしています。現在、単一のサーバーに多数のデータベースがあり、単一のデータベースでのみ作業BULK INSERTできます。許可を単一のデータベースに与えることができるのか、それともサーバー全体に許可するのか疑問に思いました。 これについてウェブで検索しましたが、少し混乱しました。これは私が見つけたものです。BULK INSERTを使用INSERTするには、目的のテーブルまたはデータベースへのアクセス許可が必要ADMINISTER BULK OPERATIONSです。これはサーバー全体のアクセス許可です。ADMINISTER BULK OPERATIONSデータベース全体に対するINSERTアクセス許可と単一のデータベースに対するアクセス許可が与えられた場合、他のデータベースに対するアクセス許可BULK INSERTがないため、その単一のデータベースでのみINSERTアクセスできませんか? BULK INSERT複数のデータベースを持つサーバー上の単一のデータベースへの使用を制限することは可能ですか? テキストの壁についてすみません、ありがとう!


4
プライマリファイルグループは完全なSQL Server 2008です
大きなテーブル(〜5000万行)があり、SQL Serverに一括挿入しようとしていますが、次のエラーが表示されます。 「PRIMARY」ファイルグループがいっぱいであるため、データベース「I 3 Stroke」のオブジェクト「myDB」にスペースを割り当てることができませんでした。不要なファイルの削除、ファイルグループ内のオブジェクトの削除、ファイルグループへの追加ファイルの追加、またはファイルグループ内の既存ファイルの自動拡張の設定により、ディスク領域を作成します。 データベースには、約2500万行の別のテーブルがあります。このデータベースは1台のマシンでのみ使用され、既存のデータをマイニングするように設計されており、現在のサイズを超えて成長することはありません。 このような状況で、SQL Serverが文句を言わないようにこれに取り組む最善の方法は何ですか?このDBが複数のユーザーに公開されないというソリューションは重要ですか?


2
FILESTREAMインサイダー情報の検索
FILESTREAM機能がMicrosoft SQL Server 2012でアクティブになると、SQL Serverはシステム上に「隠された」共有を作成します。共有は次のように定義されます。 Sharename FILESTREAM_SHARE Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE Remark SQL Server FILESTREAM share Maximum users unlimited Users Caching Manual caching of documents Permissions NT-AUTHORITY\Authenticated Users, FULL 名前は、SQL Server構成マネージャーで FILESTREAMを最初に構成するときに指定する共有の名前です。しかし、それは何のためですか? これまでのところ 私はすべての利用可能なFILESTREAMドキュメントを以下から読みます。 FILESTREAM(SQLサーバー) FILESTREAMを有効にして構成する FILESTREAM対応データベースを作成する FILESTREAMデータを保存するためのテーブルを作成する ...および関連するすべて FILESTREAMと他のSQL Server機能との互換性 FILESTREAM DDL、関数、ストアドプロシージャ、およびビュー OpenSqlFilestreamを使用してFILESTREAMデータにアクセスする 紙SQL Server 2008の- SQL Server 2008のFILESTREAMストレージ 記事FILESTREAM(OLTP)---他の多くの資料を参照するミッションクリティカルなOLTPソリューションを設計するためのテクニカルリファレンスガイド ...しかし、その共有とその目的、またはその目的についての言及はありませんでした。名前を入力すると、SQL …

2
SELECTをブロックする大規模なINSERT
SELECT操作をブロックしている大量のINSERTに問題があります。 スキーマ このようなテーブルがあります: CREATE TABLE [InverterData]( [InverterID] [bigint] NOT NULL, [TimeStamp] [datetime] NOT NULL, [ValueA] [decimal](18, 2) NULL, [ValueB] [decimal](18, 2) NULL CONSTRAINT [PrimaryKey_e149e28f-5754-4229-be01-65fafeebce16] PRIMARY KEY CLUSTERED ( [TimeStamp] DESC, [InverterID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = …

1
SQL Serverによる毎日の計画の再作成
実稼働環境でこの問題が発生しています。 Microsoft SQL Server 2008 R2(SP1)-10.50.2500.0(X64)-Windows NT 6.1(ビルド7601:Service Pack 1)上のEnterprise Edition(64ビット)。 SQL Serverは、すべての(ほぼ100%)古い実行計画を削除し、毎日一晩中(午後11:00から8:00に)再作成しています。これは、「自動更新統計」が無効状態のときにも発生していました。過去2〜3週間、「自動更新統計」をオンにしました。しかし、それはまだ起こっています。 この計画の再生成をトリガーするものは実際にはわかりませんが、手動でそれを行わないことは確かです。 計画が再生成されるタイミングと実際に一致するのは、DBメンテナンスジョブのみです。毎日のインデックスの再編成(断片化が5〜30%の場合)と毎日のインデックスの再構築(断片化が30%を超える場合) )仕事。通常、この毎日のメンテナンスジョブは再編成のみを行います(インデックスの断片化は毎日30%を超えないため)。 影響: これらの新しく作成されたプランにより、UDF呼び出し/クエリ呼び出し(UI / Webページから呼び出される)がかなり長くなり(1秒未満ではなく数分)、セッションが積み上げられてCPUが90%近くになります。 問題は、それらのスタックしたセッションが強制的に削除された瞬間(DB側)、1)対応するすべての実行プランが手動でクリアされたとき(クエリの場合)、2)UDFが変更されたとき(関数の場合)に消えます。その瞬間からSQLサーバーによって作成された新しい計画は、翌朝同じ問題が発生するまで1日を通して完璧に機能します。また、この動作は100%一貫しているわけではなく、毎朝実際に表示されるわけではありません。しかし、4〜5日間連続して表示されている期間がありました。 この問題は、ビジネスの朝に発生します。UI/ Webページがより集中的にアクセスされる場合です。 誰がこれを引き起こしているのか、この問題を解決する方法の手がかりを持っていますか?どんな助けでも大歓迎です。


2
既存のSQL Serverログインとユーザーのリスト
SQL ServerのGUIを使用して、定義されているログインとユーザーを確認できることは知っていますが、スクリプトを使用してこの確認をどのように行うことができるのか疑問に思っています。 以下のクエリを実行しましたが、Permission_levelを取得するためのマッピング方法がわからないPrincipal_idが表示されます。 SELECT * FROM Sys.login_token それでは、ログインとユーザーを許可レベルでリストできる組み込みストアドプロシージャはありますか? ありがとうございました。

1
SQL Serverで「ルックアップ」が関数の予約語として色付けされているのはなぜですか?
SSMS 2208では、識別子「Lookup」は、あたかも関数であるかのようにホットピンク色になっています(たとえば、「Power」または「Convert」と同じ色)。どうして? 予約語の公式リストにはありません。Webでの検索は、私の質問とは関係のない「ルックアップ」用語が非常に多いため、役に立たないように見えます。

2
ドメインアカウントのSQL Serverログインを作成する方法は?
すべて、 私は、SQL Server 2008をドメイン(ADと言う)のサーバー(Server1と言う)にインストールしています。AD \ Sql1というドメインアカウントも持っています。これはドメイン(AD)の管理者アカウントではありませんが、Server1の管理者になりたいです。次に、ローカルアカウントではなく、そのドメインアカウントのSql Serverにログインを作成します。 それ、どうやったら出来るの? 質問: ユーザーAD \ Sql1、私は彼をServer1の管理者にしたい。そのために、同じユーザー名(たとえばServer1 \ Sql1)でローカルアカウントを作成し、ローカルアカウントをマシンの管理者にするだけです。そのローカルアカウントは、同じ名前のドメインアカウントに自動的にマッピングされますか?CREATE LOGIN [AD\Sql1] FROM WINDOWS私にとってはうまくいかなかったここに追加する必要があります。私はuser does not exist in Windows(そのような何か) と言ってエラーを得ました さて、上記の手法が機能する場合。AD \ Sql1がSever1の管理者になると仮定しましょう。だから、理論的には、SQL ServerでそのWindowsドメインアカウントのSQLログインを作成する必要はありませんよね?BUILTIT \ Adminsの一部であるすべてのローカル管理者は、自動的にSQL Serverへのsysadminアクセス権を持っていますか? どこで私は間違えましたか?この概念をよりよく説明できるURLを共有してください。 編集:質問1と質問2は独立して重要であることも追加する必要があります。ドメイン/ Windowsアカウントをとして追加する方法を知っていますsysadmin。しかし、ドメインアカウントとローカルアカウント間のマッピングの仕組みに興味があります。ここでの私の目標は、ローカルアカウントをsysadminとして追加する方法ではなく、かなり迅速に行うことができることです。私の意図は失礼ではなく、可能な限り明確にすることです。それでも質問が明確でない場合は、詳細をお知らせください。 ありがとう、 _UB 編集:文法

6
SQL Serverチェックリスト
私の他の質問に続いて、アラートの観点から、毎日/毎週/毎月のベースで何を検討すべきかについて考え始めたいと思います。私は問題が起こる前に来ることを見ることができることを望んでいます(それは計画です)... これまでのところ、次のスクリプトを収集し始めました(順序なし): 毎日 システムの稼働時間を確認します(DBAとして何かを確認する必要がある場合に備えて) 最後のバックアップを確認する トランザクションログのバックアップを確認する SQLジョブのステータスを確認する 過去24時間(または1140分)の平均CPU使用率を確認します 毎週 MSDBバックアップ履歴を確認する CheckDBが最後に実行された時刻を確認する インデックスの断片化を確認する インデックスの統計を確認します(読み取りと書き込みなど) IOのボトルネックを確認する 毎月 不足しているインデックスを確認する 使用されなくなったインデックスを確認する 他の提案はありますか?(私はDBAが初めてなので、どんなヘルプ/アドバイスもいつでも歓迎します)

1
大規模なデータセットを処理するために、SQL Server 2008 R2のシャーディングを設定するためのパターン?
SQL Server 2008 R2で大きなデータセット(> 10億行)を処理したい。「シャーディング」または「水平パーティショニング」を設定すると、テーブルが複数のファイルに分割されるため、大規模なデータセットをすばやく処理できると聞きました。 以前にシャーディングまたは水平分割を使用したことがありますか?もしそうなら、あなたの経験では、単一の巨大なテーブルと比較してより良い結果を達成するパターンを提案できますか?

3
SQL 2008でインスタンスを複製する最も効果的な方法は何ですか?
データベースに十分なデータがある便利なデータベースインスタンスがあり、それをデモ目的に使用できます。ラップトップにコピーを置いて、開発作業に使用できるようにします。私はオフィスにいません。(通常のdevデータベースインスタンスは約150GBで、この1つのインスタンスは3GBです) ラップトップでインスタンスを再作成するための最も反復可能/スクリプト可能な方法は何ですか?SqlServer2008のインストーラーを再度実行し、インスタンスを設定する必要があると確信していますが、その後...毎月かそこらで古いデータベースを削除できるようにしたいと考えていますインスタンスが1つのデモシステムでもラップトップでも変更されないため、すべての新しいものをラップトップにコピーします。ただし、データベース自体は更新され、sprocなどが更新されます。 すべての「データベースファイルのドロップ;データベースファイルの追加{パス}」をスクリプト化し、それらを何らかの実行可能なバッチファイルに保存することを検討しました。その後、「ドロップ、削除、コピー、追加」 xcopyとbatchよりも良い方法でしたか? 私は安価でこれをやろうとしているので(私たちは常に安いものでしようとしないでください)、RedGate製品などに特に興味はありません。自分用にテキストエディタで簡単に保守できるものが欲しい。

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