データベース管理者

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

1
インポート時のMySQLテーブルのダンプが既存のレコードを置き換えました
mysqldumpを使用してダンプを取得しました。 mysqldump -u... -p... mydb t1 > mydb_table.sql 次に、同じテーブルを持つがレコードが異なる別のデータベースにダンプをインポートしました。 mysql -u...-p... mydb < mydb_tables.sql インポートデータベースには、primary_key 1から1000までのレコードがあり、エクスポートデータベースには、5000〜10,000のレコードがありました。 しかし、インポート時に既存のレコード、つまり1〜1000が削除されました。 どうやって??なぜ??これがデフォルトの動作である場合、次回ダンプを発生させないためにダンプにどのようなオプションを指定できますか。

1
パッケージに対する権限を持つすべてのユーザーを一覧表示する方法
パッケージに対する権限を持つすべてのユーザーを一覧表示するクエリを探しています。 たとえば、ユーザーSchema_Aは、パッケージB.MyPackageの実行を許可されています。 role_tab_privs、role_sys_privs、sys.dba_sys_privs、dba_role_privs ...などのビューまたはテーブルをクエリしていますが、探しているものが見つかりません。

5
選言で大きなセットを効率的にフィルタリングする
テーブルが1つあるとしましょう CREATE TABLE Ticket ( TicketId int NOT NULL, InsertDateTime datetime NOT NULL, SiteId int NOT NULL, StatusId tinyint NOT NULL, AssignedId int NULL, ReportedById int NOT NULL, CategoryId int NULL ); この例TicketIdでは主キーです。 ユーザーがこのテーブルに対して「部分的にアドホック」なクエリを作成できるようにしたい。クエリのいくつかの部分が常に修正されるので、私は部分的に言います: クエリは常に範囲フィルターを実行します InsertDateTime クエリは常に ORDER BY InsertDateTime DESC クエリは結果をページングします ユーザーは、オプションで他の列をフィルターに掛けることができます。フィルターは、なし、1つ、または多くでフィルターできます。そして、各列に対して、ユーザーは分離として適用される値のセットから選択できます。例えば: SELECT TicketId FROM ( SELECT TicketId, ROW_NUMBER() …

2
RAMの増加、パフォーマンスの低下
セットアップ: Windows Server 2008 R2 SQL Server 2008 R2 SP1 240GB RAM TempDBは自動拡張なしの8x16GBデータファイル(合計128GB) 物理/スタンドアロンサーバー このサーバーは、ETL処理に使用されます。このサーバーに追加のRAMを追加しただけで、合計で240GBのRAMになります。SQL Serverサービスのみが実行されています。 メモリは、BIOS、OpenManage、およびWindowsで正常に表示されます。 70 / 100GBのメモリの最小/最大を使用するようにSQL Serverを構成した場合、問題はありません。ただし、それを120 / 150GBに増やすと、ETLプロセスの1つを実行すると次のエラーが発生します。 'PRIMARY'ファイルグループがいっぱいのため、データベース 'tempdb'のオブジェクト '<temporary system object:422234507706368>'に領域を割り当てることができませんでした 不要なファイルを削除するか、ファイルグループ内のオブジェクトを削除するか、ファイルグループにファイルを追加するか、ファイルグループ内の既存のファイルに対して自動拡張をオンに設定して、ディスク領域を作成します。(メッセージ1105、状態2、手順不明、行1) メモリ構成を変更する前に、この問題に遭遇したことはありません。元の70 / 100GBに再構成した後、このエラーは発生しません。 私が試したこと: TempDBデータファイルを自動拡張に設定します。これにより、ディスク容量に達するまでファイルが自動拡張され、失敗するだけです。 TempDBデータファイルをさらに追加します。示されているのと同じエラー。 TempDBのサイズを8x32GB(合計256GB)に増やします。 この問題の原因は何なのか途方に暮れています。

2
どの時点でインデックスが効率的になるか
テーブルにインデックスを追加すると検索が高速になり、挿入が遅くなるが、テーブルが大きい場合に限られると多くのリソースが見つかりました。これにより、設計上の決定であるトレードオフが生じますが、インデックスの使用が不合理になる前に、おおよそのテーブルサイズが必要です。(たとえば、10行はおそらくその制限をはるかに下回ります) この制限がどこにあるか、または私を正しい方向に向けるリソースを知っている人はいますか?

4
あるテーブルから別のテーブルへの行の移動
アーカイブプロセスの一環として、あるデータベースから別のデータベースにレコードを移動しています。行を宛先テーブルにコピーしてから、同じ行をソーステーブルから削除します。 私の質問は、行を削除する前に最初の挿入が成功したかどうかを確認する最も効率的な方法は何ですか? 私の考えはこれですが、もっと良い方法があると思います: @num_records=select count(ID) from Source_Table where (criteria for eligible rows) insert * into Destination_Table where (criteria for eligible rows) if ((select count(ID) from Destination_Table where (criteria) )=@numrecords) delete * from Source_Table where (criteria) RAISERROR関数と組み合わせるのが良いですか?ありがとうございました!

2
SQL ServerジョブでのトランザクションとTry-Catch
SQL Serverジョブの各ステップにはDML操作があります。更新を確保するために/挿入は、何かがうまくいかない場合にはロールバックされます、私はのデータ修正包まれている各ステップをにTRY CATCHしてTRANSACTIONブロック: BEGIN TRY BEGIN TRANSACTION [[INSERT/update statements]] ... IF @@TRANCOUNT > 0 BEGIN COMMIT TRANSACTION PRINT 'Successful.' END END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage IF @@TRANCOUNT > 0 BEGIN ROLLBACK TRANSACTION …

3
SQL Serverリークトランザクション
ログスペースを解放していないように見えるTDS over TCPを介して約50のクライアントからアクセスされるデータベースがあります。プロセスの数は予想される50前後にとどまり、それらのいくつかは非常に長寿命(> 120日)です。 これで、データベースのログ領域に40 GB(データは14 GBのみ)、39 GBが解放されました。ドライブのスペースの制限により、私はもっと妥当なもの(10GBくらい)に縮小したいと思います。を実行するDBCC SHRINKFILE('db_log', 10000)と、ログの最後が使用中であるというエラーが返されます。 ログの最後へのアクセスを解放するために、次のようにしてデータベースをシングルユーザーモードにしようとしました。 ALTER DATABASE db SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE db SET MULTI_USER GO しかし、スクリプトは次のメッセージを数百回繰り返し返します。 Nonqualified transactions are being rolled back. Estimated rollback completion: 100%. これにより、どこかにコミットされていないトランザクションが残っていると思います。一度に多くのトランザクションを意図的に一度に開くプロセスについては知りません。そのため、これらのトランザクションは時間をかけて蓄積され、閉じられることはないと考えています。 質問:問題のプロセスまたはスクリプトを見つけるにはどうすればよいですか、またはログがリリースされないのはなぜですか? sys.dm_tran_active_transactions理解可能な目的で合理的な18のトランザクションを示しています。 sp_who私が知っているプロセスだけを示しています。 SQL Serverのバージョン: Microsoft SQL Server 2008 R2 (RTM) - …

2
MySQLバイナリログ-テーブルをスキップ
バイナリログの特定のテーブルをスキップする方法はありますか? 毎晩のバックアップ間の増分バックアップ戦略としてバイナリログを構成しています。しかし、バッチプロセスから毎晩更新する1つの巨大な参照テーブルがあります(70GBテーブル)。このテーブルは読み取り専用で、を使用して毎晩更新されmysqlimportます。 この参照専用テーブルの更新プロセス中に、バイナリログによってかなり深刻な遅延が発生しています(特に、70 GBの完全更新を実行した場合)。基本的に70GBを2回やる必要があります。うん。 参照テーブルは現在MyISAMを使用しています(InnoDBがそれをロードしようとしたため、MyISAMを試しました)。
9 mysql  logs  binlog 

1
MongoDBが使用可能なRAMをすべて使用していない
mongoクラスターに約200 GB相当のデータが保存されています。mongoを実行するインスタンスの1つの物理メモリは8GBです。このインスタンスでは、他に何も起こりません。Mongoのドキュメントに基づいて理解できる限り(このドキュメントのように:http : //www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage)、これはmongodプロセスが約100%を使用する必要があることを意味します利用可能な物理メモリ。しかし、topコマンドの次の出力を見ると、mongodインスタンスが2GBの常駐メモリしか使用しておらず、使用されていない2GBの完全な物理メモリが使用されていないことがわかります。 誰かがこの動作を私に説明できますか?なぜ2GBの空きメモリがあるのですか? top 出力: top - 23:19:43 up 89 days, 20:05, 2 users, load average: 0.41, 0.55, 0.59 Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie Cpu(s): 2.0%us, 1.3%sy, 0.0%ni, 93.9%id, 2.6%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 8163664k total, 6131764k used, 2031900k free, 54976k buffers …
9 mongodb  memory 

1
SQL Serverアセンブリの最適化エラーとメモリ不足を修正するにはどうすればよいですか?
mscorsvwSQL Server 2012 Service Pack 1をインストールしてから、.NETランタイム最適化サービス()がワークステーションのすべてのメモリを消費し続けます。 使用可能なすべてのメモリを使い果たす前に、約1.6 GBのメモリを消費します。 プロセスを強制終了することはできますが、コンピュータを再起動するか、十分に待つと再び発生します。 Techdowsは、.NETネイティブイメージジェネレーター(ngen)を使用して問題を解決することを推奨しています。 コマンドプロンプトを実行して、次のようなコマンドを実行しました。 cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1 ngen executeQueuedItems のメモリ消費量はmscorsvw約20〜30 MB に低下しngen、残りのすべてのメモリを消費しました。 ngenプロセスを強制終了するまで、エラーメッセージのみが生成されました。出力の最初の数行は次のようになります。 Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1 Copyright (c) Microsoft Corporation. All rights reserved. Failed to load dependency Microsoft.DataWarehouse of assembly Microsoft.SqlServer.MaintenancePlanTasks, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 because of the following …

2
カスタムデータベース変数を設定および取得するにはどうすればよいですか?
使用してPGAdmin III私は、データベース上で右クリックをすることができますに移動しVariables、タブ、およびデータベース自体に変数の名前と値のプロパティを置きます。これらをカスタマイズする方法はありますか?application_name変数を見ましたが、変数が欲しいのapplication_versionですが。


2
ケースvs isnull vs合体
SQL Server 2012試験のドキュメントを読んでいるだけで、次の点がわかりました。 ケースvs isnull vs合体 今、私が知っているどのようにそれぞれのいずれかを使用するが、私は知らないWHEN各1を使用します。いくつかの体を明確にしてください。ありがとう。 Ps。試験問題のタグを付けていただけませんか?

2
SQL Server Filetableドキュメントのプロパティ
SQL Server 2012のFiletableを使用してドキュメントを保存し、セマンティック検索で検索しています。 すべてのドキュメントプロパティ(メタデータ)を一覧表示する方法があるかどうか疑問に思いました。フルテキスト検索でインデックスを作成し、ドキュメントのプロパティを検索する方法があります。次のステートメントを使用して、SQL Serverインデックスのプロパティのリストを作成できます。 SELECT * FROM sys.registered_search_properties; SQLまたはプログラムを使用して、このリストを拡張することもできます。 見つからなかったのは、実際の情報をリストする方法です。私が探しているのは次のようなリストです: 著者:Ruud van de Beeten タイトル: テスト文書 カスタムプロパティ:カスタム値 誰かが私を正しい方向に向けることができますか? 編集:ボブボーケミンが私の問題を説明するチケットを作成しました。DMVはプロパティ値をリストしていないため、プロジェクトで使用できません。 最終的にC#を使用して、OleDocumentPropertiesオブジェクトでカスタムプロパティを一覧表示しました。このオブジェクトは、Officeドキュメントからプロパティを読み取ることができます。私はより良い解決策を期待して、この質問を監視し続けます。

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