データベース管理者

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

5
SSMSの大文字キーワードを作成する方法
私は最近のMySQL Workbenchを使用した場合の管理Studio 2012を使用して開始した、便利な機能は、私が下部ケースと(のような任意の予約語ですべてを保つことができるということでしたSELECT、INSERT自動的に大文字に変換します)。この動作をSSMSで複製するにはどうすればよいですか?

1
動的ポートはいつ「動的」ですか?
今日Dynamic Ports、同僚の1人と話し合っていましたが、彼らがどのように機能するかを明確にするのに役立つ情報があります。 最初の質問:場合IPALL TCP Dynmaic Portsの設定は、特定の番号は(1971と言う)あなたは1971年の静的ポートまたは現在1971であり、将来のある時点で変更される可能性があり、ダイナミックポートを持っているということを意味しています。 2番目の質問:これは私が最も興味を持っているものです。IPALL TCP Dynmaic Ports数十回のインスタンスの再起動を通じて、数年間同じポート(設定の値)を持つインスタンスがあります。インスタンスの再起動後に動的ポートが実際に変更される原因は何ですか?

6
ログファイルを圧縮してもサイズは小さくなりません
350 MBのデータファイル(.mdf)と4.9 GBのログファイル(.ldf)を持つデータベースがあります。復旧モデルはに設定されFULLます。 ログファイルを圧縮しようとしても、圧縮されません。 データベースの縮小は良くないことを知っています。しかし、私はまだログファイルを縮小するためにそれをやろうとしています。 走ったとき DBCC SQLPerf(logspace) ログサイズは4932 MBで、使用されるログ領域は98.76%であることがわかりました。 それから私はこのコマンドを試しました USE <databasename>; DBCC loginfo; 現在、ほとんどすべてのVLFは「ステータス2」であり、すべてが使用中であることを意味します。 ログのバックアップを取り、ログファイルを圧縮しようとしました。縮小してもサイズは小さくなりませんでした。 復旧モデルをに変更し、SIMPLE再度縮小しようとしましたが、これも役に立ちませんでした。 未処理のトランザクションを確認しました DBCC opentran (database); 現在開いているトランザクションがないことがわかりました。 ログファイルの縮小を妨げているのは何ですか?どうすれば解決できますか?

2
1つのストアドプロシージャから3つのストアドプロシージャが開始されたときにロールバックする方法
内部で3つのストアドプロシージャのみを実行するストアドプロシージャがあります。マスターSPが成功した場合、1つのパラメーターのみを使用して保存します。 マスターストアドプロシージャで最初のストアドプロシージャが正常に機能するが、2番目のストアドプロシージャが失敗した場合、マスターSPのすべてのSPが自動的にロールバックされますか、それともコマンドを実行する必要がありますか? 私の手順は次のとおりです。 CREATE PROCEDURE [dbo].[spSavesomename] -- Add the parameters for the stored procedure here @successful bit = null output AS BEGIN begin transaction createSavebillinginvoice begin Try -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; BEGIN EXEC [dbo].[spNewBilling1] END …

4
SSLを使用してmysqlに接続していることを確認するにはどうすればよいですか?
SSLを許可するようにサーバーを構成し、クライアント〜/ .my.cnfを変更してSSLを使用しています。 [client] ssl ssl-cipher=DHE-RSA-AES256-SHA ssl-ca=~/certs/ca-cert.pem クライアントでログインしてステータスを表示すると、SSL行に暗号がリストされます。 mysql> \s -------------- SSL: Cipher in use is DHE-RSA-AES256-SHA 接続が安全であることを検証するためにwiresharkのようなものをインストールせずに、この情報に基づいてSSL経由で接続していると想定できますか?
23 mysql  ssl 

1
SQL Server 2000データベースを2008 R2にアップグレードし、新しい機能を有効にします
最近、SQL Server 2000データベースを2008 R2にアップグレードしました。 私がしたことは: 古いマシンでSQL Server 2000(エクスプレス)サービスをシャットダウンします。 データファイル(mydatabase.mdfおよびmydatabase.ldf)を新しいマシンに移動し、 SQL Server Management Studio 2008を実行します。 ローカルデータベースエンジンに接続し、 データファイルをデータベースに添付します。 データベースの互換性レベルをSQL 2008(100)に変更します。 質問:移行を完了するには、他に何をすればよいですか? したい: チェックサムや完全復旧モデルなどの新機能を使用し、 このデータベースをSQL 2008 R2で作成されたとおりに作成します。 このデータベースを完全に互換性があり、正確にし、新しいSQL 2008 R2データベースエンジンに最適なものにします。 つまり、古いSQL 2000データベースを新しい2008 R2データベースに正しく完全に変換する方法を知り、すべてが正しく行われていることを落ち着いて、すべての新機能に満足しているだけです。 この質問をしているのは、インターネット上で非常に多くの異なることを言って混乱しているサイトを見つけたためです。今は何も分からないので、経験豊富な人の意見と明確で段階的な指示を聞きたいです。私は非常に小さな会社で働いています。私は独力で仕事をします。 サー、私はあなたの答えに本当に感銘を受けました、私はそれほど期待していませんでした。 いくつかのコメント: データベースは現在稼働中です。私が言ったように、それは私が最初の記事でdesribedような方法をdeattachは、取り付け使用してアップグレードされたとMSDNに記載されているように:http://msdn.microsoft.com/en-us/library/ms189625.aspx それは迅速に行わなければなりませんでした、だから私はそのようにせざるを得なかった。それがいかに不適切であったかを忘れて、現在の状況に注目しましょう。 ここではユーザー/権限は問題ではありません-少数であり、許可は簡単です。 データベースを使用するアプリケーションは2012年までSQL 2000と互換性があるため、これも問題ではありません。 データベースファイル(MDF)は大きくなく、約1GBのみです。 その他の質問: バックアップ/復元方法を使用することをお勧めしますが、上記のようにしたので、問題が発生する可能性はありますか?すべてが問題なく機能しました。 チェックサムと完全復旧モデルについて:SQL 2000では利用できなかったので、すぐに使用したいと思います。データベースプロパティでこれらのオプションを有効にすることだけが必要だとおっしゃいましたか?どこかで読みましたが、それだけでは十分ではなく、インデックスなどを再構築する必要があります。私は本当に知りません、ただ尋ねます。 このデータベースをSQL 2012に移行するために事前に準備しています-最初はSQL 2000から2008 R2になりましたが、2008 R2から2012になりますSQL 2012)。だから私はあなたのガイドに従うべきだと理解しています:2008 R2でそれをバックアップし、2012年に復元してから、残りのヒントをしますか? …

1
SQL Serverで「No Join Predicate」とはどういう意味ですか?
MSDN「Missing Join Predicate Event Class」は、「結合述語のないクエリが実行されていることを示しています」と述べています。 しかし、残念ながら、それほど簡単ではないようです。 たとえば、非常に単純な状況: create table #temp1(i int); create table #temp2(i int); Select * from #temp1, #temp2 option (recompile); テーブルにはデータがなく、警告もありませんが、明らかに結合述語はありません。 私はSQL Server 2005の(同じリンク、ちょうど他のサーバーバージョン)のドキュメントを見てみる場合は、余分な文章があります:「このイベントはの両側が1行以上のリターンに参加した場合にのみ生成されます。」これはなるだろう前の状況での完全な意味。データがないため、両側は0行を返し、警告を返しません。行を挿入すると、警告が表示されます。うんいいね。 しかし、次の混乱する状況のために、両方のテーブルに同じ値を挿入します。 Insert into #temp1 (i) values (1) Insert into #temp1 (i) values (1) Insert into #temp2 (i) values (1) Insert into #temp2 (i) values …

1
CTE(クエリ付き)の最適化フェンスの動作は、SQL:2008標準で指定されていますか?もしそうなら、どこで?
WITHクエリ(共通テーブル式、またはCTE)への頻繁な参照が最適化フェンスとして機能し、サーバーがフィルターをCTEクエリにプッシュダウンしたり、共通式をCTEから取り出したりすることを許可されていないことがよくあります。 SQL標準で要求される動作であるため。 CTEは間違いなくPostgreSQLの最適化フェンスです...しかし、これは標準で必要なのですか、実際には実装の詳細だけですか? たとえば、これらのメーリングリストの投稿は、それが標準であると主張または示唆しています。 http://www.digipedia.pl/usenet/thread/11566/101385/ コメントでそれを言及した後、私はそれがどこに指定されているのか尋ねられました-そしてSQL:2008の唯一のドラフトを見た後、私はそれを見つける運があまりありません。 私はまだ標準を徹底的に研究していないので、次のような人からの提案を期待しています。もしそうなら、それはどこに指定されていますか?または、Pgメーリングリストのステートメントにエラーがありますか? ToDoリストのスレッドCTE最適化フェンスも参照してください。。

1
SQL Server Management StudioでIntelliSenseキャッシュを強制的に更新するにはどうすればよいですか?
SSMSのIntelliSenseは、シャットダウンして再起動しない限り更新されません。SSMSセッションがアクティブなときにサーバーから切断して再接続しようとしましたが、機能しません。 再作成する手順: テーブルを作成する そのテーブルから何かを選択します SSMSの下に波線の赤い線が表示され、「無効なオブジェクト名」というヒントが表示されます クエリを実行する SSMSを再起動せずにIntelliSenseを強制的に更新するにはどうすればよいですか?

8
バックアップのためにデータベースを無視するmysqldumpのオプションはありますか?
サーバーには40個のデータベースがあります。 mysqldumpを使用して36個のデータベースのバックアップを取得します。mysqldumpコマンドで残りの4つのデータベースを無視するにはどうすればよいですか?MySQLでバックアップするデータベースを無視するmysqldumpのオプションはありますか? 一般的なmysqldumpコマンドは知っていますが、非常に時間がかかります。4つのデータベースのみを無視し、残りのdbsバックアップを取得する必要があります。

1
MySQLトランザクションサイズ-大きすぎますか?
頻繁に実行されるインポートプロセスがあり、それを「すべてまたは何もしない」種類の取引、つまりトランザクションにしたいのです。 多くの側面があり、インポートによって100k-1mil +のレコードが生成される場合があります。これは、数MBから数百MBのデータのペイロードに相当します。 私は一時テーブルが別のオプションであることを知っています-しかし、この方法はとても便利なようです。 コミット間で大量のデータ操作を行うこの種のプラクティスに関して注意すべき注意事項はありますか?(コミット後の一般的な書き込み/インデックス作成の負荷バーストの外側)

1
ユーザーにSQL Server SHOWPLAN権限を付与することにリスクはありますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 私は大規模なSQL Server 2008データベースでパフォーマンスチューニングを行っていますが、ITグループはSHOWPLAN権限を与えたくありません。これまで、「実行計画の表示」は、個々のクエリとプロシージャのパフォーマンスを理解する最も効果的な方法でした。 この許可を与えることにはどのようなリスクが伴いますか?データベースの開発コピーに対するこの制限の正当な正当性はありますか? 注:このSQL ITグループには、単一のSQL Serverインスタンスの下に200以上のデータベースがあります。ありがとう。 回答:以下に示すものを除き、重大なセキュリティリスクがないことを意味するように、応答がないと考えています。基本的に、開発データベースでこれを制限すると逆効果になります。 誰かがより良い答えを思いついた場合、私はこれを更新します。コメントしてくれてありがとう!

8
ユーザーのログインに失敗しました-エラー18456-重大度14、状態38
SQL Serverログファイルビューアーに表示されるメッセージ: Login failed for user [User] Error: 18456, Severity: 14, State 38 実際の意味: Failed to open the explicitly specified database 私の質問: 重大度と状態の組み合わせごとに、18456エラー(ログイン失敗)のすべてのバリエーションのリストが役立つ説明テキストとともにありますか? Googleを使用しましたが、特定の組み合わせ以外は見つかりません。

3
すべてのクエリで(nolock)ヒントを使用しないで正当化する
クエリヒントを使用しないことを正当化する必要がありましたか? WITH (NOLOCK)非常に忙しいサーバーにヒットするすべてのクエリで見ています。開発者は、コードで何千回もそれを見るのが嫌いなので、デフォルトでオンにするだけだと思っているのです。 ダーティリードが許可され、最終的に不良データが発生することを説明しようとしましたが、パフォーマンスのトレードオフはそれだけの価値があると考えています。(それらのデータベースは混乱しています。パフォーマンスの問題があるのも不思議ではありません。) このNOLOCKヒントの悪用に対するケースを提示する方法の明確な例があれば、それはありがたいです。


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