タグ付けされた質問 「ddl」

データ定義言語; データベース構造を定義するが、その内容は定義しない。

5
PostgreSQLデータベース内のすべてのオブジェクトの所有者を同時に設定する方法はありますか?
/programming/1348126/modify-owner-on-all-tables-simultaneously-in-postgresqlは、テーブルやその他のオブジェクトを特定のユーザーに変更するいくつかの気の利いた方法を説明します。提案は、私が作成した関数を無視するようです。 関数を含む、データベース内のすべてのオブジェクトの所有者をリセットするかなり簡単な方法はありますか?手作業で行うことは非常に望ましくありません。

3
マスターを使用してデータベースを作成する理由
短い質問がありますが、なぜuse master;データベースの作成に使用するのですか?ここでの例は、Microsoftのドキュメントからは、 USE master ; GO CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = 'C:\Program Files\...\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'C:\Program Files\...\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) ;


5
MySQL-InnoDBのALTER TABLEへの最速の方法
変更したいInnoDBテーブルがあります。テーブルには約8,000万行あり、いくつかのインデックスを終了します。 列の1つの名前を変更し、さらにいくつかのインデックスを追加したいと思います。 それを行う最速の方法は何ですか? 「プレーン」alter table、最速のソリューションですか? この時点で、私が気にしているのは速度です:)

2
T-SQL(SSMSではない)を使用してデータベースにログインをマップする方法
すべてのアクセス許可とすべてをコードに割り当てる必要があるプログラムを書いています。私はこの部分で立ち往生しています: msdbデータベースの[マップ]の下にある小さなボックスをクリックし、そのユーザーをSqlAgentUserロールに割り当てるのと同じことをしたいだけです。SQL Serverエージェントジョブを追加/編集できるユーザーが必要です。SSMSを使用して設定を正しく取得できますが、生のSQLでそれを実行する方法を理解することができません。 ALTER LOGINを調べましたが、必要なことを実行するものは何も見つかりません。私はGoogleに対する正しい用語を知らないだけだと思います。私は通常、このようなことはしません。 どんな助けでも大歓迎です!

2
PL / SQLブロックに直接ddlステートメントを記述できないのはなぜですか
なぜPL / SQLブロックに直接ddlステートメントを書き込めないのか、たとえば、 CREATE OR REPLACE PROCEDURE test IS BEGIN truncate table table_name; // error END test; / だが、 CREATE OR REPLACE PROCEDURE test IS BEGIN execute immediate 'truncate table table_name'; // works fine END test; / なぜ2番目が正常に実行されたのですか?
11 oracle  plsql  ddl 

2
クラスタ化インデックスの作成がテーブルの作成に失敗する
次のスクリプトを実行するとエラーが発生します。 IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='Table_Name') BEGIN CREATE TABLE Table_Name ( Field_Name_1 binary(32) NOT NULL CONSTRAINT PK_Name_Goes_Here PRIMARY KEY NONCLUSTERED , Field_Name_2 int NOT NULL , Field_Name_3 datetime NOT NULL INDEX IX_Name_Goes_Here CLUSTERED ) END 特に、次のエラーをスローするクラスター化インデックスの作成です。 メッセージ1018、レベル15、状態1、行15 「INDEX」付近の構文が正しくありません 。これがテーブルヒントの一部として意図されている場合、WITHキーワードと括弧が必要になりました。適切な構文については、SQL Server Books Onlineを参照してください。 特定のQAサーバーを除くすべてのサーバーで機能するため、これは奇妙です。私たちが行った修正は、テーブル作成ステートメントの外でクラスター化インデックスを作成することですが、誰かが以前にこの問題に遭遇したことがあれば、興味がありますか?

2
PostgreSQLはNULL以外のDEFAULTを含む列の追加を最適化しますか?
値をNOT NULL持つ列を追加するDEFAULT場合-PostgreSQLはこの操作を最適化しますか? テーブルにn行がある場合、最適化されていないalter-table-add-columnは、デフォルト値のn回の書き込みを生成します。最適化により、DBは即座に新しい列を作成し、適切なインデックスデータ構造でその列の非デフォルト値が見つからない場合に返されるデフォルト値のコピーを1つだけ保存します。 たとえば、Oracle 11gにはそのような最適化があります。

3
SQL Serverは、コミットする前に、トランザクション内のトランザクションへのDDLを許可(可視化)しますか?
PostgreSQLでは、いくつかのテストデータを使用してテーブルを作成し、トランザクションでそれを別のタイプの新しい列に移行することで、1回のテーブル書き換えでCOMMIT、 CREATE TABLE foo ( a int ); INSERT INTO foo VALUES (1),(2),(3); に続く、 BEGIN; ALTER TABLE foo ADD COLUMN b varchar; UPDATE foo SET b = CAST(a AS varchar); ALTER TABLE foo DROP COLUMN a; COMMIT; ただし、MicrosoftのSQL Serverでは同じことがエラーを生成するようです。この作業の比較デシベルのフィドル、ADD(列)コマンドは、トランザクションの外にあります -- txn1 BEGIN TRANSACTION; ALTER TABLE foo ADD b varchar; COMMIT; …

4
TempDBでのDDL競合
過去数か月間、TempDB DDL競合の問題が発生しているSQL Server 2005 Standard x64があります。サーバーは待機リソース2:1:103(待機タイプはPAGELATCH_EX)で競合が発生します。 この問題は、サーバーに適切な負荷がかかっているときに散発的に発生するようです。私は「破壊用の一時テーブル」のレートを監視しており、2:1:103でPAGELATCH_EXの問題が発生しているときに5,000以上にジャンプする可能性があります。私が読んだことから、このカウンターはほとんどの場合0であるはずですが、私たちのカウンターはほとんどの場合300〜1100のどこかにとどまっているようです。システム上のユーザーが非常に少ない場合にのみ、カウンターは0になります。 干し草のスタックで針を探す必要なしに、tempdbのDDL競合の原因を絞り込むにはどうすればよいですか?

1
OracleデータベースのコンテンツをVisioにインポートしてエンティティ関係図を作成するにはどうすればよいですか?
Oracleデータベースがあり、Visio 2007 ProでERDを作成したいと考えています。 これまで、DDLを生成するためのDBMS_METADATA.GET_DDLコマンドを見てきました。Access DBをVisioにインポートできることはわかっていますが、AccessはOracleとは異なるSQL方言を理解しているようなので、データ型を変更するには、すべてのCreate Tableコマンドを微調整する必要があります。 Visio Pro 2007でDDLを使用してERDを作成する簡単な方法はありますか?
9 oracle  import  erd  ddl  visio 

3
作成時にデータベース照合を変更するトリガー
トリガーを作成して、作成時にデータベースの照合を変更しようとしていますが、トリガー内で使用するデータベース名をキャッチするにはどうすればよいですか? USE master GO CREATE TRIGGER trg_DDL_ChangeCOllationDatabase ON ALL SERVER FOR CREATE_DATABASE AS declare @databasename varchar(200) set @databasename =db_name() ALTER DATABASE @databasename COLLATE xxxxxxxxxxxxxxxxxxx GO 明らかに、これは機能していません。

1
SELECT INTOは、実行前にTempDBで#Object名を予約しますか?
デバッグに役立つQuickieプロシージャをまとめると、コンパイラでエラーのように見えるものに遭遇しました。 create proc spFoo @param bit as begin if @param = 0 begin select * into #bar from [master].dbo.spt_values -- where number between ... end else begin select top 10 * into #bar from [master].dbo.spt_values order by newid(); end; end; 上記を試行すると、次のエラーが返されます メッセージ2714、レベル16、状態1、プロシージャspFoo、行19 データベースにはすでに「#bar」という名前のオブジェクトがあります。 人間が読める意味では、プロシージャは問題ないように見えます。ブロックselect into内にラップされているため、実行されるステートメントは1つだけですif-else。ただし、SQLサーバーは、ステートメントが互いに論理的に除外されていることを確認できません。おそらくもっと混乱するのdrop table #fooは、以下のようにがif-elseブロック内に配置されたときにエラーが残ることです(これにより、オブジェクト名の割り当てを解除するようコンパイラーに指示すると想定されます)。 create proc spFoo …

3
Postgres部分インデックスの作成を高速化
Postgres 9.4で大きな(1.2 TB)静的テーブルの部分インデックスを作成しようとしています。 私のデータは完全に静的なので、すべてのデータを挿入してから、すべてのインデックスを作成できます。 この1.2 TBのテーブルrun_idには、データをきれいに分割するという名前の列があります。さまざまなをカバーするインデックスを作成することにより、優れたパフォーマンスを得ていますrun_id。次に例を示します。 CREATE INDEX perception_run_frame_idx_run_266_thru_270 ON run.perception (run_id, frame) WHERE run_id >= 266 AND run_id <= 270; これらの部分インデックスにより、望ましいクエリ速度が得られます。残念ながら、各部分インデックスの作成には約70分かかります。 CPUが制限されているようです(topプロセスの100%を示しています)。 部分インデックスの作成を高速化するために何かできることはありますか? システム仕様: 18コアXeon 192GB RAM RAIDに12個のSSD 自動バキュームがオフになっています maintenance_work_mem:64GB(高すぎる?) テーブル仕様: サイズ:1.26 TB 行数:10537億 一般的なインデックスサイズ:3.2GB(〜.5GBの差異があります) テーブル定義: CREATE TABLE run.perception( id bigint NOT NULL, run_id bigint NOT NULL, frame bigint …

3
中央データベースに関数を作成するか、各データベースで繰り返しますか?
私の開発者の1人が、VB.Net関数(LastIndexOf)のように機能し、それを公開したいSQL関数を作成しました。私の質問は、これを中央データベースに配置するのではなく、各ユーザーデータベースに配置する理由は何ですか? 開発者はそれを自分のマスターデータベースのsysスキーマに配置しようとしていたため、ユーザーデータベースからの呼び出しを修飾する必要はありませんでした...ため息 しかし、私はそれを(明らかにマスターデータベースではなく)各ユーザーデータベースに対して集中化するための有効な言い訳が何であるかがわかりませんでしたか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.