データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

1
-E起動オプションとSSD
-ESSDを使用した場合の影響の証拠を見た人はいますか? 「回転する錆びる」ドライブへの影響については異論はありませんが、SSDはランダムI / Oによって影響を受けることはありません。この-Eオプションはパフォーマンスに悪影響を与える可能性があるのでしょうか。 ドライブ(SSD SAN、PCI SSD、および従来のSAN)が混在するサーバーでは、SQL Serverは使用するかどうかを起動時に決定する-E必要があります。このオプションがパフォーマンスに悪影響を与える可能性があることを示すいくつかの経験的証拠がありますが、削除する前に、他の人のフィードバックをお願いします。 私のセットアップでは標準の64K RAIDストライプを使用しており、NTFSクラスターのサイズも64Kです。

1
sp_configureのブロックされたプロセスしきい値の変更によるパフォーマンスへの影響
私は運用サーバーで発生しているすべてのブロッキングを識別することを任されています。これを達成するための私の計画は使用することです EXECUTE sp_configure 'blocked process threshold', 5 サーバー側のトレースと組み合わせて、ブロックされたプロセスレポートを収集します。 このアクティビティがパフォーマンスに影響を与えることを理解しています。これが何であるかを数値化する方法を見つけたいと思います。

2
デフォルトでCHECK_POLICYをオフにする
SQL Server 2000からSQL Server 2005に移動しました。変更できないクライアントソフトウェアは、オプションなしでユーザーを作成します CHECK_POLICY = OFF; ユーザーを作成した後、コマンドを実行する必要があります ALTER LOGIN username WITH CHECK_POLICY = OFF; ポリシーを無効にすると、推奨どおり、できなくなります。 CHECK_POLICY彼女のCREATE LOGINユーザーなしで作成されたデフォルトを無効にすることは可能CHECK_POLICY = OFFですか?


3
SUM()を2回使用するのは最適ではありませんか?
句で使用する場合(または派生テーブルを使用する場合)SUM、2回記述する必要があることはわかっていHAVINGます。 SELECT id, sum(hours) AS totalhours FROM mytable GROUP BY id HAVING sum(hours) > 50; 私の質問は、これが最適ではないかどうかです。プログラマーとして、このクエリは、DBが合計を2回計算するように見えます。そうですか、それともDBエンジンが行う最適化に依存すべきですか? 更新:比較可能なクエリの説明: postgres=> explain select sum(counttodo) from orderline group by orderlineid having sum(counttodo) > 100; QUERY PLAN -------------------------------------------------------------------- HashAggregate (cost=1.31..1.54 rows=18 width=8) Filter: (sum(counttodo) > 100) -> Seq Scan on orderline (cost=0.00..1.18 rows=18 width=8) (3 …


1
#SomeTableを複数回作成および削除することは「合法」ですか?
私のコードは「コヒーレントブロック」として分離されており、長い「構成スクリプト」に何度も挿入できます。使用しているパターンの1つは次のとおりです。 CREATE TABLE #WidgetSetting ( WidgetID bigint not null, Name nvarchar(100) not null, Value nvarchar(max) not null, CreateDate datetime not null ) INSERT VALUES MERGE TABLES DROP TABLE #WidgetSetting しかし、現在SSMSは、オブジェクトがすでにCREATE TABLE火災が発生するまでにすでに存在していると不平を言っています。何ができますか? スクリプトの最初に一度テーブルを宣言し、ドロップではなく切り捨てる必要があるのは明らかだと思いますが、当然のことながら、テーブルをドロップして同じ名前を再び使用するのは簡単ではありません。

3
架空のインデックスの削除
以前は、クラスター化インデックスのDROP INDEXステートメントと非クラスター化インデックスのDROP STATISTICSステートメントのいずれかを使用して、架空のインデックスを削除すると思っていました。 クリーンアップしたいDTAの残りがいっぱいのデータベースがあります。ただし、オブジェクトを削除しようとすると、「オブジェクトが存在しないか、権限がないため」オブジェクトを削除できないというエラーメッセージが常に表示されます。私はサーバーの完全なシステム管理者ですので、何かをする権利があると思っています。 私はこれをDROP STATSとDROP INDEXステートメントの両方で試しましたが、どちらも同じエラーを出します。 誰かが以前にこれらを削除したことがあり、私が見逃しているトリックはありますか? 補遺 これを見てみると、オブジェクトをRクリックすると、[名前を付けてスクリプト]オプションと[削除]オプションの両方がグレー表示されることに気づきました。

1
.docx XMLを細断処理す​​る方法?
xml(実際にはdocxファイル)をSQL Server 2008データベースにインポートしようとしています。私はXMLプログラミングの初心者です。私はたくさんググりましたが、そこにあるほとんどすべての例は、単純なxmlファイルです。ここでxmlファイルは少し複雑です(以下を参照してください)。このXMLのテーブルを作成する方法と、SQLサーバーで実行するクエリを教えてください。すべてのタグに値が必要です。たとえば、w:rsidP、w:rsidRDefault、w:rsidRのw:p、w:pStyle、w:bookmarkStart、w:tタグなどです。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"> <w:body> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"> <w:pPr><w:pStyle w:val="Heading1"/> </w:pPr><w:bookmarkStart w:id="0" w:name="_Toc212523610"/> <w:r> <w:t>Summary</w:t> </w:r> <w:bookmarkEnd w:id="0"/> </w:p> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"><w:pPr><w:pStyle w:val="mainbodytext"/><w:ind w:right="-694"/><w:rPr><w:b/><w:bCs/></w:rPr></w:pPr><w:r><w:rPr><w:b/><w:bCs/></w:rPr><w:t>What is the Group Defined Practice for Integrity Management?</w:t></w:r></w:p> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" …

4
mysqlのレプリケーションは成功したが、スレーブがレプリケーションしていない
mysqlのマスター/スレーブ構成を作成しましたが、問題はありません。「マスターステータスの表示」スレーブではエラーは表示されません。これは出力です Slave_IO_State: Waiting for master to send event Master_Host: 109.123.100.58 Master_User: replica Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 106 Relay_Log_File: relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 106 Relay_Log_Space: 106 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 …

1
ソースデータにアクセスせずにデータベースを正規化しますか?
大量の関連データを扱う新しい役割を開始しました。このすべてのデータのソースは、アクセスできないデータベースから抽出されたさまざまなExcelダンプです。この役割を担当する以前の人物は、数十個のExcelファイルを使用して、これらのデータファイルを収集し、操作し、レポートを作成しました。 ダンプをAccessデータベースに移動し始めました。Excelデータの多くが関連しており、おそらく正規化されているはずです。私が現在行っていることは、すべてのデータダンプのテーブルを作成し、それらをAccessにインポートし、多数のクエリを使用して、数十のデータ操作とレポートを複製することです。 私の唯一のソースが倉庫からのExcelダンプである場合、データを正規化することにまだ利点がありますか? ダンプの送信方法の形式を変更できない場合、データを正規化するにはどうすればよいですか? さらに、私の計画(予算によって異なります)はAccessからMS SQLデータベースに移行することです。
8 ms-access 

4
ユーザー「domain \ username」のログインに失敗しました。(Microsoft SQL Server、エラー:18456)
ローカルシステムデータベースに接続するときにこの問題に直面していますが、接続するサーバーに接続すると、この問題が発生します。 Login failed for user 'domain\username'. (Microsoft SQL Server, Error: 18456) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=18456&LinkId=20476

2
データベースクエリオプティマイザーはストレージパフォーマンスの違いを認識していますか?
私が理解しているように、SQL Server(または実際には他のRDBMS)のクエリオプティマイザーは、データベースの下のストレージのパフォーマンスを認識せず、すべてのストレージのコストが等しいかのように判断します。それは正確ですか、または考慮に入れられているストレージパフォーマンスの知識はありますか? 完全に不自然な例で、テーブルの行が瞬時のアクセス時間でSANのSSDドライブに保存されているとしましょう。インデックスは極端に過負荷のSASドライブに保存されているため、ディスクが飽和状態になり、ディスクキューが一定になります。RDBMSが実行プランを生成するとき、インデックス操作よりもテーブルスキャンを優先する可能性が高いですか(または、SASディスクでのIOが少ないため、カバーするインデックスとは対照的に、スキニーインデックスおよび関連するテーブルルックアップ)。 その答えは確かなものだと思いますが、「オプティマイザが賢くなったり、ディスクパフォ​​ーマンスを認識したりする可能性はない」と思いますが、そこにいる誰かが確かに知っているかどうかを確認したかっただけです。SQL Serverを使用していますが、どのデータベースシステムにも興味があります。

1
MySQLの起動/停止
次のコマンドラインを実行するとどうなるかを理解するための助けを求めています。 root@prodn$ service mysqld stop はい、それはMySQLサーバーをシャットダウンするので、サービスが再開されるまで、そのサーバーへのアクセスは利用できなくなります。しかし、より具体的には、サービスが停止したときに何か他に起こることはありますか?ここで私の初心者を許しますが、mysqldが再起動すると、ログがフラッシュされた、一部のメモリが解放された、キャッシュが空になったなどのことを意味しますか? 私が尋ねる理由は次のとおりです: 私たちのデータウェアハウスDBはMySQL DBであり、過去4か月で、平均8.5時間かかりました。 先週の水曜日に、mysqlサービスを停止し、30分後に再起動しました。それ以来、全体的なパフォーマンスの大幅な改善に気づき始めました。SELECT/ INSERT / UPDATE / DELETEプロセスの方が効率的でした。DWは同じ数のデータ行でほぼ4時間早く終了しました ただし、1日が経過するごとに、終了時間に15〜20分が追加されます。だから、私は毎週サービスを再開する必要があるのではないかと思います。 この動作の説明はありますか?関連する他の質問はわかりませんが、mysqldサービスの再起動時に何が起こるかを知ることはすばらしいでしょう。 誰かこれに光を当てることができますか?

2
物理トランザクションログファイルがミラーのプリンシパルである場合、どうすれば縮小できますか?
週末にデータベースミラーリングをセットアップしましたが、トランザクションログをバックアップするジョブを再度有効にするのを忘れていました。私が今朝来たとき、トランザクションログは58GBに膨れ上がっており、ドライブ容量のほとんどを占めていました。 トランザクションログをディスクに手動でバックアップして、データベースを再度実行しましたが、DBCC SHRINKFILEを実行しても、トランザクションログファイルの物理的なサイズは小さくなっていません。 DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000) を使用してログの使用状況を確認した場合 DBCC SQLPERF(LOGSPACE) 現在のログの22%だけが使用されていることがわかります データベース名ログサイズ(MB)ログ使用領域(%)ステータス MyDatabaseName 55440.87 22.38189 0 log_reuse_wait_descsys.databsesでチェックアウトした場合、表示される唯一のレコードはDATABASE_MIRRORINGなので、ログファイルの物理サイズが縮小されないのは、ミラーが役割を果たしていると思いますか? SELECT log_reuse_wait_desc FROM sys.databases WHERE name = N'MyDatabaseName'; また、プリンシパルデータベースミラーリングの状態がSuspendedであることにも気付きました。再開することは、次のエラーですぐに失敗します。 データベース 'MyDatabaseName'のリモートミラーリングパートナーでエラー5149、ステータス1、重大度25が発生しました。データベースミラーリングが一時停止されました。リモートサーバーのエラーを解決してミラーリングを再開するか、ミラーリングを削除してミラーサーバーインスタンスを再確立します。 ミラーサーバーのエラーログにはこのエラーも含まれますが、ログファイルドライブがいっぱいであることに関するエラーも含まれます 物理ファイルを拡張しようとしたときに、MODIFY FILEでオペレーティングシステムエラー112(ディスクに十分なスペースがありません。)が発生しました。 そして F:\ Databaselogs \ MyDatabaseName_1.ldf:オペレーティングシステムエラー112(ディスクに十分なスペースがありません。)が発生しました。 プリンシパルサーバーのログファイルドライブには60 GBがあり(他のデータベースはここでホストされています)、ミラーサーバーには45 GBしかありません。 ログファイルをバックアップするとデータベースが再び使用できるようになりましたが、ディスク上の物理ログファイルのサイズを減らし、ミラーリングを再開したいと考えています。 ミラーリングやバックアップチェーンを犠牲にすることなく、物理トランザクションログファイルのサイズを縮小するにはどうすればよいですか? SQL Server 2005を実行しています

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