2011年12月10日

1.

2つテーブル一覧を取得して、差分する

select
 relname as TABLE_NAME
from
 pg_stat_user_tables
order by TABLE_NAME

2.
select
 table_name,column_name,ordinal_position,is_nullable,
 case 
 when trim(data_type)=’character varying’ then data_type||’(‘||character_maximum_length||’)’
        when trim(data_type)=’numeric’ then data_type||’(‘||numeric_precision||’)’
        when trim(data_type)=’timestamp without time zone’ then data_type
  end coloum_type
from
 information_schema.columns
where
information_schema.columns.table_name in
(select
 relname as TABLE_NAME
from
 pg_stat_user_tables

where relname not like ‘bk%’
order by TABLE_NAME)

order by table_name

2007年04月11日

区切り記号
———-
。  句点﹐マル
、  読点﹐句点﹐とう点﹐テン
.  中黑﹐中点﹐中ポツ
﹐  カンマ/コンマ (comma)
﹒  ドット (dot)﹐ピリオド (period)﹐フルストップ (full stop)
﹕  コロン (colon)
﹔  セミコロン (semi-colon)
?  はてな﹐疑問符﹐インタロゲーションマーク﹐耳だれ
!  感嘆符﹐エクスクラメーションマーク﹐雨だれ

括弧類
——
() パーレン﹐かっこ(括弧)
{} ブレース﹐中括弧
﹝﹞ ブランケット (bracket)﹐大括弧
〔〕 龜甲(キッコウ)
〈〉 山パーレン、ギュメ
《》 二重山パーレン、二重ギュメ
「」 かぎ、かぎかっこ
『』 二重かぎ、二重かぎかっこ
【】 すみつきパーレン、すみつき
‘’ コーテーション (quotation)﹐アポストロフィ
“” ダブルコーテーション (double quotation)

つなぎ符号
———-
–  ハイフン (hyphen)
-  ダッシュ (dash)
~  波ダッシュ
‥  二点リーダー
…  三点リーダー

ほかの日本語キーボード記号
————————–
= イコール (equal)﹐等号
+ プラス (plus)﹐たす﹐加算記号
- マイナス (minus)﹐ひく﹐ダッシュ﹐ハイフン﹐減算記号
* アスタリスク (asterisk)﹐スター﹐ほし﹐乘算記号
/ スラッシュ (slash)﹐除算記号
\ バックスラッシュ (back slash)﹐バクスラ﹐逆スラ
< 小なり記号﹐小なり﹐始め山型カッコ﹐不等号
> 大なり記号﹐大なり﹐終わり山型カッコ﹐不等号
(  左かっこ,かっこ,開きかっこ
)  右かっこ,こっか,閉じかっこ
# シャープ
% パーセント (percent)
& アンド﹐アンパサンド (and, ambersand)
@ アットマーク﹐單價記号
$ ドル (dollar)
~ チルダ﹐にょろ
¥ 日元記号
^ キャレット (caret)﹐山型記号
| パイプ (pipe)﹐蹤線﹐蹤棒
_ アンダーバー (underbar)﹐アンダースコア (underscore)

2005年09月01日
1.查看某个表空间内所占空间大于某个值的段(表或索引): 
SELECT segment_name,bytes FROM dba_segments WHERE bytes>10000000 AND tablespace_name='tablespace_name';

2.查看某个表空间内最大连续的自由空间大小:
SELECT tablespace_name,max(bytes) FROM dba_free_space GROUP BY tablespace_name ORDER BY max(bytes);

3.查看所有表空间的碎片程度(值在30以下表示碎片很多)
select tablespace_name,sum(bytes),sum(free),sum(free)*100/sum(bytes) from (select
b.file_id file_ID,
b.tablespace_name tablespace_name,
b.bytes Bytes,
(b.bytes-sum(nvl(a.bytes,0))) used,
sum(nvl(a.bytes,0)) free,
sum(nvl(a.bytes,0))/(b.bytes)*100 Percent
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id) group by tablespace_name order by sum(free)*100/sum(bytes);

4.迅速收缩临时段(适用于临时段表空间收缩很慢的情况)
alter tablespace temp default storage(pctincrease 1);
alter tablespace temp default storage(pctincrease 0);

5.查看自上次数据库启动以来所有数据文件的读写次数
select
substr(DF.NAME,1,5) Drive,
DF.NAME file_name,
(fs.phyblkrd+fs.phyblkwrt)
from v$filestat fs,v$datafile df
where df.file#=fs.file#;

6.查看某用户下段存储的大小
select SEGMENT_NAME,BYTES from dba_segments where segment_type='TABLE' and owner='owner_name' ;
select SEGMENT_NAME,BYTES from dba_segments where segment_type='INDEX' and owner='owner_name' ;
由于oracle提供的oem工具的局限性,所以很多时候dba必需借助于一些脚本来管理、调优数据库。

This stored procedure can be used to insert the result set of the
particular select statement into Excel file (c:\ImportToExcel.xls,
by default).
You can pass the server name, user name, user password, the select
statement to execute, and the file name to store the results set,
as in the example below:

EXEC ExportToExcel @server = ’.',
                   @uname = ’sa’,
                   @QueryText = ’SELECT au_fname FROM pubs..authors’,
                   @filename = ’c:\ImportToExcel.xls’

/*
Version: SQL Server 7.0/2000
Created by: Alexander Chigrik
- all about MS SQL
(SQL Server Articles, FAQ, Scripts, Tips and Test Exams).

This stored procedure can be used to insert the result set of the
particular select statement into Excel file (c:\ImportToExcel.xls,
by default).
You can pass the server name, user name, user password, the select
statement to execute, and the file name to store the results set,
as in the example below:

EXEC ExportToExcel @server = ’.',
                   @uname = ’sa’,
                   @QueryText = ’SELECT au_fname FROM pubs..authors’,
                   @filename = ’c:\ImportToExcel.xls’
*/

IF OBJECT_ID(‘ExportToExcel’) IS NOT NULL DROP PROC ExportToExcel
GO

CREATE PROCEDURE ExportToExcel (
  @server sysname = null,
  @uname sysname = null,
  @pwd sysname = null,
  @QueryText varchar(200) = null,
  @filename varchar(200) = ’c:\ImportToExcel.xls’
)
AS
DECLARE @SQLServer int,
        @QueryResults int,
        @CurrentResultSet int,
        @object int,
        @WorkBooks int,
        @WorkBook int,
        @Range int,
        @hr int,
        @Columns int,
        @Rows int,
        @indColumn int,
        @indRow int,
        @off_Column int,
        @off_Row int,
        @code_str varchar(100),
        @result_str varchar(255)

IF @QueryText IS NULL 
  BEGIN
    PRINT ’Set the query string’
    RETURN
  END

– Sets the server to the local server
IF @server IS NULL SELECT @server = @@servername

– Sets the username to the current user name
IF @uname IS NULL SELECT @uname = SYSTEM_USER

SET NOCOUNT ON

EXEC @hr = sp_OACreate ’SQLDMO.SQLServer’, @SQLServer OUT
IF @hr <> 0
BEGIN
    PRINT ’error create SQLDMO.SQLServer’
    RETURN
END

–  Connect to the SQL Server
IF @pwd IS NULL
  BEGIN
    EXEC @hr = sp_OAMethod @SQLServer, ’Connect’, null, @server, @uname
    IF @hr <> 0
       BEGIN
         PRINT ’error Connect’
         RETURN
       END
  END
ELSE
  BEGIN
    EXEC @hr = sp_OAMethod @SQLServer, ’Connect’, null, @server, @uname, @pwd
    IF @hr <> 0
      BEGIN
        PRINT ’error Connect’
        RETURN
      END
  END

SELECT @result_str = ’ExecuteWithResults("’ + @QueryText + ’")’
EXEC @hr = sp_OAMethod @SQLServer, @result_str, @QueryResults OUT
IF @hr <> 0
BEGIN
    PRINT ’error with method ExecuteWithResults’
    RETURN
END

EXEC @hr = sp_OAMethod @QueryResults, ’CurrentResultSet’, @CurrentResultSet OUT
IF @hr <> 0
BEGIN
    PRINT ’error get CurrentResultSet’
    RETURN
END

EXEC @hr = sp_OAMethod @QueryResults, ’Columns’, @Columns OUT
IF @hr <> 0
BEGIN
    PRINT ’error get Columns’
    RETURN
END

EXEC @hr = sp_OAMethod @QueryResults, ’Rows’, @Rows OUT
IF @hr <> 0
BEGIN
    PRINT ’error get Rows’
    RETURN
END

EXEC @hr = sp_OACreate ’Excel.Application’, @object OUT
IF @hr <> 0
BEGIN
    PRINT ’error create Excel.Application’
    RETURN
END

EXEC @hr = sp_OAGetProperty @object, ’WorkBooks’, @WorkBooks OUT
IF @hr <> 0
BEGIN
    PRINT ’error create WorkBooks’
    RETURN
END

EXEC @hr = sp_OAGetProperty @WorkBooks, ’Add’, @WorkBook OUT
IF @hr <> 0
BEGIN
    PRINT ’error with method Add’
    RETURN
END

EXEC @hr = sp_OAGetProperty @object, ’Range("A1")’, @Range OUT
IF @hr <> 0
BEGIN
    PRINT ’error create Range’
    RETURN
END

SELECT @indRow = 1
SELECT @off_Row = 0
SELECT @off_Column = 1

WHILE (@indRow <= @Rows)
BEGIN
SELECT @indColumn = 1

WHILE (@indColumn <= @Columns)
BEGIN

EXEC @hr = sp_OAMethod @QueryResults, ’GetColumnString’, @result_str OUT, @indRow, @indColumn
IF @hr <> 0
BEGIN
    PRINT ’error get GetColumnString’
    RETURN
END

EXEC @hr = sp_OASetProperty @Range, ’value’, @result_str
IF @hr <> 0
BEGIN
    PRINT ’error set value’
    RETURN
END

EXEC @hr = sp_OAGetProperty @Range, ’Offset’, @Range OUT, @off_Row, @off_Column
IF @hr <> 0
BEGIN
    PRINT ’error get Offset’
    RETURN
END

SELECT @indColumn = @indColumn + 1

END

SELECT @indRow = @indRow + 1
SELECT @code_str = ’Range("A’ + LTRIM(str(@indRow)) + ’")’
EXEC @hr = sp_OAGetProperty @object, @code_str, @Range OUT
IF @hr <> 0
BEGIN
    PRINT ’error create Range’
    RETURN
END

END

SELECT @result_str = ’exec master..xp_cmdshell ”del ’ + @filename + ”’, no_output’
EXEC(@result_str)
SELECT @result_str = ’SaveAs("’ + @filename + ’")’
EXEC @hr = sp_OAMethod @WorkBook, @result_str
IF @hr <> 0
BEGIN
    PRINT ’error with method SaveAs’
    RETURN
END

EXEC @hr = sp_OAMethod @WorkBook, ’Close’
IF @hr <> 0
BEGIN
    PRINT ’error with method Close’
    RETURN
END

EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
    PRINT ’error destroy Excel.Application’
    RETURN
END

EXEC @hr = sp_OADestroy @SQLServer
IF @hr <> 0
BEGIN
    PRINT ’error destroy SQLDMO.SQLServer’
    RETURN
END
GO