データベース管理者

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

9
接続文字列を使用してコマンドラインからSQL Plusに接続します
Oracleデータベースがあるとします。ユーザー名= x、パスワード= y、データベース= zです。また、ポート= a、SID = b、ホスト名= cを知っています。 それでは、どうすれば正しく接続する必要がありますか?次のような多くのオプションを使用しました。 sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))' sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b))) これらのコマンドラインを送信すると、通常、次のようなエラーメッセージが返されます。 ORA-12560:TNS:プロトコルアダプタエラー ORA-12514:TNS:リスナーは現在サービスを認識していません 事前に感謝します!!
41 oracle  sqlplus  string 

3
すべてを再構築してインデックスを再作成した後、データベースがまだ断片化されているのはなぜですか?
このT-SQLを実行して、すべてのテーブルを一度に最適化しようとしたデータベースがあります。 SELECT 'ALTER INDEX all ON ' + name + ' REORGANIZE;' + CHAR(10) + 'ALTER INDEX all ON ' + name + ' REBUILD;' FROM sys.tables 次に、出力を新しいクエリウィンドウにコピーアンドペーストして実行します。エラーは発生しませんでしたが、まだ断片化しています。私も両方のコマンドを別々に実行しようとしましたが、まだ断片化しています。注:REORGANIZEアーロンはこれが不要であることを認識しており、動的SQLを使用してこれを自動化できることを認識しています。 私はこれを実行して、まだ断片化があることを確認しました: SELECT * FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, NULL) WHERE avg_fragmentation_in_percent > 0 そして私は得た: database_id object_id index_id partition_number index_type_desc alloc_unit_type_desc …

10
SELECT INTOを使用してテーブルをコピーし、IDENTITYプロパティを無視するにはどうすればよいですか?
私は次のようなID列を持つテーブルを持っています: create table with_id ( id int identity(1,1), val varchar(30) ); これはよく知られています select * into copy_from_with_id_1 from with_id; idにIDを持つcopy_from_with_id_1になります。 次のスタックオーバーフローの質問では、すべての列を明示的にリストすることに言及しています。 やってみよう select id, val into copy_from_with_id_2 from with_id; この場合でもidはID列です。 私が欲しいのはテーブルのようなものです create table without_id ( id int, val varchar(30) );

2
宣言された結合列の順序を変更するとソートが導入されるのはなぜですか?
同じ名前、タイプ、およびインデックスキー列を持つ2つのテーブルがあります。それらの1つには一意のクラスター化インデックスがあり、もう1つには非一意があります。 テストのセットアップ いくつかの現実的な統計を含むセットアップスクリプト: DROP TABLE IF EXISTS #left; DROP TABLE IF EXISTS #right; CREATE TABLE #left ( a char(4) NOT NULL, b char(2) NOT NULL, c varchar(13) NOT NULL, d bit NOT NULL, e char(4) NOT NULL, f char(25) NULL, g char(25) NOT NULL, h char(25) NULL --- and a …

2
SQL Server 2016では、Always EncryptedとTransparent Data Encryptionの違いは何ですか?
これを書いている間、SQL Server 2016の公式リリースを待っているので、「常に暗号化された」機能の有用性を探ることができます。 Always EncryptedとSQL Server 2016で現在利用可能なTransparent Data Encryptionの具体的な違いを知りたいので、将来のプロジェクトのために正しい判断を下すことができます。

6
私の教授は、「COUNT」は重複をカウントしないことを教えてくれました
大学で、私の教授は今年このSQLステートメントを教えてくれました。 SELECT COUNT(length) FROM product 2次のデータセットで戻ります: | product | |id | length | code | |-------------------| | 1 | 11 | X00 | | 2 | 11 | C02 | | 3 | 40 | A31 | 彼女はCOUNT重複を数えないと言ってそれを正当化した。 私は教授にエラーを犯したと思ったと言いました。彼女は、一部のDBMSが重複をカウントする場合としない場合があると答えました。 多くのDBMSを試した後、このような動作をするものを見つけたことがありません。 このDBMSは存在しますか? 教授がこの行動を教える理由はありますか?また、他のDBMSの動作が異なる可能性があることさえ言及していませんか? 参考までに、コースサポートはこちら(フランス語)でご利用いただけます。関係するスライドは、10ページの左下隅にあります。
40 dbms 

3
パラメータースニッフィングvs変数vs再コンパイルvs未知の最適化
そのため、今朝(30秒+実行時間)に問題を引き起こす長時間実行中のprocがありました。パラメータスニッフィングが原因かどうかを確認することにしました。そのため、パラメータスニッフィングを無効にするために、procを書き直し、受信パラメータを変数に設定しました。試された/真のアプローチ。バム、クエリ時間が改善されました(1秒未満)。クエリプランを見ると、元のインデックスでは使用されていなかった改善が見つかりました。 誤検知が発生しなかったことを確認するために、元のprocでdbcc freeproccacheを実行し、改善された結果が同じかどうかを確認するために再実行しました。しかし、驚いたことに、元のprocはまだ低速で実行されていました。まだ遅いWITH RECOMPILEを使用して再試行しました(プロシージャの呼び出しと、プロシージャ自体の内部で再コンパイルを試行しました)。サーバーも再起動しました(明らかに開発ボックス)。 だから、私の質問はこれです...空のプランキャッシュで同じスロークエリを取得したときにパラメータスニッフィングがどのように責任を負うことができるか...スニフするパラメータはありませんか? 代わりに、プランキャッシュに関係のないテーブル統計の影響を受けますか。もしそうなら、なぜ受信パラメータを変数に設定すると役立つのでしょうか?? さらなるテストでは、proc DIDの内部にOPTION(OPTIMIZE FOR UNKNOWN)を挿入すると、予想される改善された計画が得られることもわかりました。 それで、私より賢い皆さんの中には、この種の結果を生み出すために舞台裏で何が起こっているのかについての手がかりを与えることができますか? 別の注意事項として、遅いプランもGoodEnoughPlanFound理由により早期に中止されますが、速いプランには実際の計画には早期中止の理由がありません。 要約すれば 受信パラメータから変数を作成する(1秒) 再コンパイル(30秒以上) dbcc freeproccache(30秒以上) オプション(イギリス向けに最適化)(1秒) 更新: こちらのスロー実行プランをご覧ください:https : //www.dropbox.com/s/cmx2lrsea8q8mr6/plan_slow.xml こちらの高速実行プランをご覧ください:https : //www.dropbox.com/s/b28x6a01w7dxsed/plan_fast.xml 注:テーブル、スキーマ、オブジェクト名はセキュリティ上の理由で変更されました。

3
単一のストアドプロシージャの実行権限をどのように付与しますか?
通常、ストアドプロシージャを作成するときは、並べ替えのテンプレートとして次を使用します。 Create procedure <procedurename> <@param1 <type>, @param2 <type>, etc..> as begin <procedure> end 私がそこにいる間に、そのストアドプロシージャのみに実行アクセス許可を付与する方法はありますか? たとえば... Grant execute [User_Execute] ...しかし、このストアドプロシージャのみですか? 他の同様の質問を見ましたが、それらはすべて、1つだけでなくすべてのストアドプロシージャを参照しているようですcreate procedure。また、スクリプト内で権限を指定できるものも見ていません。特定のストアドプロシージャにGUIを使用せずにアクセス許可を設定する方法についての回答も歓迎します。 編集 一番上の答えは確かに正しい方向に私を指摘しました、これは本質的に私が探していたものであり、コマンドをバッチ処理することは考えていませんでした。とにかく、私はそれがかなり滑らかだと思います。 Create procedure <procedurename> <@param1 <type>, @param2 <type>, etc..> as begin <procedure> end GO GRANT EXECUTE ON <procedurename> to <username> GO
40 sql-server 

1
断続的なMySQLが「致命的なエラー:バッファプールにメモリを割り当てられません」というエラーでクラッシュする
編集時に追加、2013-05-29:これは長い質問と議論であるため、質問と解決策の簡単な要約を以下に示します。小さなLinuxサーバー(1 GBのメモリ)でMySQLとApacheを実行する際に問題が発生しました。Apacheはより多くのメモリを要求し続け、結果として、OSは常にメモリを回復するためにMySQLを殺しました。 解決策は、ApacheをLighttpdに置き換えることでした。それを行った後、サーバーでのメモリ使用は数か月間完全に安定しており、いかなるクラッシュもありませんでした。編集の終わり 私は小さな仮想サーバーの初心者システム管理者です。サーバーの主な機能は、PHPで書かれたオープンソースのMoodleコース管理システムソフトウェアを実行することです。データベース(この場合はMySQL)とWebサーバー(この場合はApache)に依存しています。 サーバーは、1 GBのメモリと200 GBのディスク、カーネルバージョン2.6.18-308.8.2.el5xenを備えた64ビットCentOSリリース5.8(最終)を実行しています。MySQLバージョンは、Linux(x86_64)でreadline 5.1を使用する場合、Ver 14.14 Distrib 5.5.25です。 MoodleソフトウェアはMySQLのそれほどヘビーユーザーではないと思います。現在、約10人の教師のみがアクセスでき、データベース全体をbzip2でダンプおよび圧縮すると、結果のダンプのサイズは1 MB未満になります。 数ヶ月前にシステムをセットアップしました。Apacheサーバーはこれまでずっと安定していますが、MySQLは数回クラッシュしました。Webから最適な構成について学習しようとしましたが、前回/etc/my.cnfファイルを変更したとき/usr/share/doc/mysql55-server-5.5.25/my-large.cnfは、MySQLに付属のファイルを例として使用しました。このファイルは、512 MBのメモリを搭載したシステム向けであると述べているため、メモリ関連の構成パラメータを使用することはこのシステムにとって安全だと考えました。(私は以前はるかに小さい数字でMySQLのメモリー関連のパラメータを設定していた、と私はそれがクラッシュにつながっているかもしれないと思ったクラッシュはまだ発生している間、システムはより速くなりました少なくともである。)これらは、現在の内容です/etc/my.cnf: # /etc/my.cfg # The main and only MySQL configuration file on [WEBSITE ADDRESS REDACTED]. # Last updated 2012-09-23 by Teemu Leisti. # Most of the memory settings are set to be the same as the …

2
DBAはSSASについて何を知る必要がありますか?
SSASのビジネスの側面をカバーする多くの資料を見てきましたが、管理と管理の重要な側面についてはあまり多くありません。 SQL Server Analysis Servicesのインスタンスを管理するという観点から、作業中のDBAは、SSASを正しく効率的に管理するためにSSASについて何を知る必要がありますか?
40 sql-server  ssas 

3
WHERE INを使用した削除操作中の予期しないスキャン
次のようなクエリがあります。 DELETE FROM tblFEStatsBrowsers WHERE BrowserID NOT IN ( SELECT DISTINCT BrowserID FROM tblFEStatsPaperHits WITH (NOLOCK) WHERE BrowserID IS NOT NULL ) tblFEStatsBrowsersには553行あります。 tblFEStatsPaperHitsには47.974.301行があります。 tblFEStatsBrowsers: CREATE TABLE [dbo].[tblFEStatsBrowsers]( [BrowserID] [smallint] IDENTITY(1,1) NOT NULL, [Browser] [varchar](50) NOT NULL, [Name] [varchar](40) NOT NULL, [Version] [varchar](10) NOT NULL, CONSTRAINT [PK_tblFEStatsBrowsers] PRIMARY KEY CLUSTERED …

4
SQL Server 2008でActive Directoryグループ全体のセキュリティアクセスを割り当てるにはどうすればよいですか?
ドメイン上のすべての内部アプリケーションで統合セキュリティを使用したいと思います。残念ながら、私はこれをうまく機能させることができませんでした。特定のテーブルへの読み取り/書き込みアクセスのために、Exchange(Active Directory)グループ全体にSQL Serverのロールを割り当てたいと思います。そうすれば、誰かが雇われるたびにオペレーターを作成したり、誰かが解雇されたときにオペレーターを削除したりする必要がなくなります。これは可能ですか?これを行うにはどのような手順を実行しますか?




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