本日教えてもらった便利なやつは以下の通り!
・sys.database_filesテーブル
これをみると、データベースの物理ファイルに関する情報がわかる!
・dbcc shrinkfile (データベース物理ファイル名, 0)
物理ファイルの圧縮を行う。
また、物理ファイルの圧縮を行う際に、データベースの「復旧モデル」によって圧縮具合が違う。
「完全」の場合、バックアップがなされていないと、DB物理ファイルに持ち続けるため容量が減らない。
「単純」とかにしていると、一発で大分へるっぽい。
いつもこれで困るから、覚えておこうと思う。
2012/05/12
SQLServerのすごいやつ(隠しストアド編)
職場のDBマスターに教えてもらったSQLServerの隠しストアド
exec sp_MSforeachtable @command1 = "select '?'"
ヘルプに乗ってないやつらしく、かつ便利なやつなので覚えとくといいよ、とアドバイスいただいた。
何ができるかというと。。。
sp_MSForeachtableで返されるのが、「スキーマ.テーブル名」の一覧
使い方としては、@command1で指定した文内の「?」に上記の「スキーマ.テーブル名」がはめ込まれる。
だから、全テーブルに一括でSQL文をブン投げたい場合に便利 らしい!!
たとえば、これ
CREATE TABLE #temp (
TABLE_NAME sysname,
rows sysname,
reserved sysname,
data varchar(32),
index_size varchar(254),
unused varchar(100)
)
INSERT INTO #temp EXEC sp_MSforeachtable @command1 = "sp_spaceused '?'"
SELECT * FROM #temp order by table_name
sp_spaceusedで引数に渡したテーブルの使用容量をとれるストアドだが、
これに、sp_MSforeachtableを挟むと、各テーブルのテーブル使用容量を取り出せる。
SQL文がsp_MSforeachtableで取得したテーブル分繰り返されるので、いったん仮想テーブルに詰めて抽出すると、実行したDBのすべてのテーブルの使用容量一覧が取得できる。
べんりー!
exec sp_MSforeachtable @command1 = "select '?'"
ヘルプに乗ってないやつらしく、かつ便利なやつなので覚えとくといいよ、とアドバイスいただいた。
何ができるかというと。。。
sp_MSForeachtableで返されるのが、「スキーマ.テーブル名」の一覧
使い方としては、@command1で指定した文内の「?」に上記の「スキーマ.テーブル名」がはめ込まれる。
だから、全テーブルに一括でSQL文をブン投げたい場合に便利 らしい!!
たとえば、これ
CREATE TABLE #temp (
TABLE_NAME sysname,
rows sysname,
reserved sysname,
data varchar(32),
index_size varchar(254),
unused varchar(100)
)
INSERT INTO #temp EXEC sp_MSforeachtable @command1 = "sp_spaceused '?'"
SELECT * FROM #temp order by table_name
sp_spaceusedで引数に渡したテーブルの使用容量をとれるストアドだが、
これに、sp_MSforeachtableを挟むと、各テーブルのテーブル使用容量を取り出せる。
SQL文がsp_MSforeachtableで取得したテーブル分繰り返されるので、いったん仮想テーブルに詰めて抽出すると、実行したDBのすべてのテーブルの使用容量一覧が取得できる。
べんりー!
2012/04/30
2012/04/05
Javaのフォームデザイナ
JavaでSwingを使ったプログラムをちょいちょいいじっているのだが、
フォームを作るのがかなりしんどい。
なぜって、それは。
Visual Studio病だから。
そんなわけで、視覚的にコントロールの配置ができるプラグインを探し回った。
NetBeansのデザイナーに似ている。
XMLとか作ってバインドバインドじゃない感じ。
GUIでコントロールを配置すると、クラス内にメソッドを自動生成する。
まぁ、現状、これが一番あってるなぁ。
なぜか、Javaのデザイナ関係はすたれるのが早く(?)、リンク切れだの最近のじゃ動かんだのが多い。
きっとJavaでのデスクトップアプリケーションがまったくはやってないことが原因なんだろうなぁ。
Webとか作りにくくって嫌いなんだが。。。
まぁ兎に角。なくなる前に確保しよう。
フォームを作るのがかなりしんどい。
なぜって、それは。
Visual Studio病だから。
そんなわけで、視覚的にコントロールの配置ができるプラグインを探し回った。
Visual Swing for Eclipse
オープンソースでリンクが切れていない かつ Eclipse1.6での動作確認済み!NetBeansのデザイナーに似ている。
XMLとか作ってバインドバインドじゃない感じ。
GUIでコントロールを配置すると、クラス内にメソッドを自動生成する。
まぁ、現状、これが一番あってるなぁ。
なぜか、Javaのデザイナ関係はすたれるのが早く(?)、リンク切れだの最近のじゃ動かんだのが多い。
きっとJavaでのデスクトップアプリケーションがまったくはやってないことが原因なんだろうなぁ。
Webとか作りにくくって嫌いなんだが。。。
まぁ兎に角。なくなる前に確保しよう。
2012/03/05
sqliteの使い方
macでsqliteを使うための環境やtoolとか。
あと、sqlite特有の使い方を覚え書き!
まずは、ざっとコマンドラインでの使い方
そもそも前提として、sqliteはファイル=データベースとなっている。
で、データベースの作り方は、コマンドから行う。
sqlite3 [データベース名(ファイル名)]
データベース名で指定した名前のファイルがカレントディレクトリに作成される。
あとは、環境を調べるコマンドは以下の通り
Lita – SQLite Administration Tool
日本語に対応していないが、ある程度使えそう。
見た目がmacらしい
Lita – SQLite Administration Tool | David Deraedt
SQLite Database Browser
見た目がかっこわるい。日本語に対応。
SQLite Database Browser を日本語化してみた
とりあえず、このくらいで。
あと、sqlite特有の使い方を覚え書き!
まずは、ざっとコマンドラインでの使い方
そもそも前提として、sqliteはファイル=データベースとなっている。
で、データベースの作り方は、コマンドから行う。
sqlite3 [データベース名(ファイル名)]
データベース名で指定した名前のファイルがカレントディレクトリに作成される。
あとは、環境を調べるコマンドは以下の通り
- .exit
- 終了コマンド
- .quit
- 終了コマンド
- .help
- ヘルプを表示
- .table
- データベースに登録されているテーブルの一覧
- .schema ?TABLE?
- 指定テーブルのCREATE文を表示する
- .read FILENAME
- 指定データベースを読み込む?(試してない(ぇ
Lita – SQLite Administration Tool
日本語に対応していないが、ある程度使えそう。
見た目がmacらしい
Lita – SQLite Administration Tool | David Deraedt
SQLite Database Browser
見た目がかっこわるい。日本語に対応。
SQLite Database Browser を日本語化してみた
とりあえず、このくらいで。
xcodeでsqlite
iPhone開発をせねばならなくなったのでとりあえず備忘録をつけていく
sqliteを使ってDBをアプリに組み込む方法を調べている。
まず、macにsqliteがインストールされていること。
これはxcodeを入れると入っているっぽい?
少なくとも、買ったばっかりのLionにxcodeをインストールした後、コンソールでsqliteを起動できた。
sqliteを使ってDBをアプリに組み込む方法を調べている。
まず、macにsqliteがインストールされていること。
これはxcodeを入れると入っているっぽい?
少なくとも、買ったばっかりのLionにxcodeをインストールした後、コンソールでsqliteを起動できた。
- コンソールを起動し、sqliteでデータベースを作る。
- 作成したデータベースファイルをxcodeのプロジェクトに追加する
- xcodeのプロジェクト画面のsummaryタブ内にあるLinked Frameworks and Librariesで+を押し、libsqlite3.dynlibを追加する
- コード上でimportをしてapiからアクセスすればOKなはず(というか、ここまでしかわからない)
さて、実際にコード上でうまく動かすにはどうするか調べよう。。。
追加
コード上で扱う方法
インポートヘッダ
だめだ、いったんこれで止めて、sqliteの使い方で別エントリをたてることにする
追加
コード上で扱う方法
インポートヘッダ
#import "sqlite3.h"
だめだ、いったんこれで止めて、sqliteの使い方で別エントリをたてることにする
2012/02/28
SQLServerでFKの一覧を取得したい
SQLServerでFKの一覧をずばっ!と取得するためには以下のようにINFORMATION_SCHEMAを用いる。
SELECT
REF.CONSTRAINT_CATALOG AS [DB_NAME]
, REF.CONSTRAINT_SCHEMA AS [SCHEMA]
, REF.CONSTRAINT_NAME AS [FK_NAME]
, COL_FK.TABLE_NAME AS [FK_TABLE_NAME]
, COL_FK.COLUMN_NAME AS [FK_COLUMN_NAME]
, COL_PK.TABLE_NAME AS [PK_TABLE_NAME]
, COL_PK.COLUMN_NAME AS [PK_COLUMN_NAME]
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS REF
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS COL_FK
ON (REF.CONSTRAINT_NAME = COL_FK.CONSTRAINT_NAME)
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS COL_PK
ON (REF.UNIQUE_CONSTRAINT_NAME = COL_PK.CONSTRAINT_NAME)
ORDER BY
COL_PK.TABLE_NAME
, COL_PK.COLUMN_NAME
これで、FKの元と先を合わせて取得できちゃったりする。
べんりべんり
いじょ
SELECT
REF.CONSTRAINT_CATALOG AS [DB_NAME]
, REF.CONSTRAINT_SCHEMA AS [SCHEMA]
, REF.CONSTRAINT_NAME AS [FK_NAME]
, COL_FK.TABLE_NAME AS [FK_TABLE_NAME]
, COL_FK.COLUMN_NAME AS [FK_COLUMN_NAME]
, COL_PK.TABLE_NAME AS [PK_TABLE_NAME]
, COL_PK.COLUMN_NAME AS [PK_COLUMN_NAME]
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS REF
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS COL_FK
ON (REF.CONSTRAINT_NAME = COL_FK.CONSTRAINT_NAME)
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS COL_PK
ON (REF.UNIQUE_CONSTRAINT_NAME = COL_PK.CONSTRAINT_NAME)
ORDER BY
COL_PK.TABLE_NAME
, COL_PK.COLUMN_NAME
これで、FKの元と先を合わせて取得できちゃったりする。
べんりべんり
いじょ
登録:
投稿 (Atom)
