Webシステムの開発で欠かせないのがJavaScript。
さらに発展した使い方をしたいときはjQueryを使うことが多いなーと感じる。
半分フレームワークだし、あまり好きではないけど便利なものは使わないともったいない。
ということでjQueryの入門。
※これも随時更新の予定
jQuery日本語リファレンス
jQuery事始め・コピペに頼らず、基礎知識を理解して実際に動かしてみる
2013年9月8日日曜日
2013年9月3日火曜日
2013年9月2日月曜日
PostgreSQLのチューニング情報
VACUUM FULL(データベースの最適化)をしても性能が向上しない現象が発生した。
原因は、統計精度が小さすぎることで、統計情報が荒くなって性能が低下するという現象が起きていた。
PostgreSQLのバージョン8.1で、postgresql.confのdefault_statistics_target(統計精度)がデフォルトで10になっていた。(8.4以降はデフォルトが100)
10では大きなテーブルでは統計情報が荒くなる。
対策は、統計精度を拡張することだが、default_statistics_targetを単純に増やしてしまうと
VACUUMの処理時間が長くなる。
よって、性能が低下しているSQLで参照しているテーブル、カラムを個別に拡張することが効果的だと思われる。
設定方法は以下の通り。
ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET STATISTICS 200;
上記設定が適用されるのはVACUUM実行時。
早くなるのは、統計精度を拡張したカラムを条件としたSELECTのみ。
統計精度が関係ないカラムのSELECTやINSERTには何の影響もない
原因は、統計精度が小さすぎることで、統計情報が荒くなって性能が低下するという現象が起きていた。
PostgreSQLのバージョン8.1で、postgresql.confのdefault_statistics_target(統計精度)がデフォルトで10になっていた。(8.4以降はデフォルトが100)
10では大きなテーブルでは統計情報が荒くなる。
対策は、統計精度を拡張することだが、default_statistics_targetを単純に増やしてしまうと
VACUUMの処理時間が長くなる。
よって、性能が低下しているSQLで参照しているテーブル、カラムを個別に拡張することが効果的だと思われる。
設定方法は以下の通り。
ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET STATISTICS 200;
上記設定が適用されるのはVACUUM実行時。
早くなるのは、統計精度を拡張したカラムを条件としたSELECTのみ。
統計精度が関係ないカラムのSELECTやINSERTには何の影響もない
履歴テーブルから各IDの最新レコードを取得する方法(PostgreSQL)
PostgreSQL8.4 以降に限るが、分析関数を使用すると以下のように取得することができる。
OVER (PARTITION BY ...) : 区間に分割
OVER (ORDER BY ...) : 区間ごとに並び替え
select * from (
select *,
row_number() over(partition by code order by kaiteiymd desc) as rowNo
from history
) list
where rowNo = 1
OVER (PARTITION BY ...) : 区間に分割
OVER (ORDER BY ...) : 区間ごとに並び替え
select * from (
select *,
row_number() over(partition by code order by kaiteiymd desc) as rowNo
from history
) list
where rowNo = 1
Firefox・ThunderBirdの移行方法
======================================
Firefoxのデータ移行手順
======================================
※実行前に移行元・先のFirefoxを停止しておくこと
1.以下のプロファイル情報を移行元からコピーする
WinXPの場合
C:\Documents and Settings\ユーザー名\Application Data(隠しフォルダ)\Mozilla\Firefox\Profiles\任意の英数字.default
Win7の場合
C\Users\ユーザー名\Appdata(隠しフォルダ)\Roaming\Mozilla\Firefox\Profiles\任意の英数字.default
2.移行先の同様のフォルダ(~\Firefox\Profiles)に設置する
3.移行先の「任意の英数字.default」をコピーしておき、持ってきたファイルの名称を同じに変える
======================================
ThunderBirdのデータ移行手順
======================================
※実行前に移行元・先のThunderBirdを停止しておくこと
1.以下のプロファイル情報を移行元からコピーする
WinXPの場合
C:\C:\Documents and Settings\ユーザー名\Application Data(隠しフォルダ)\Thunderbird\Profiles\任意の英数字.default
Win7の場合
C:\Users\ユーザー名\Appdata(隠しフォルダ)\Roaming\Thunderbird\Profiles\任意の英数字.default
2.移行先の同様のフォルダ(~\Thunderbird\Profiles)に設置する
3.移行先の「任意の英数字.default」をコピーしておき、持ってきたファイルの名称を同じに変える
Windows7でクイックランチャ・送る
Windows7でXPみたいにクイックランチャを使用する方法。
右クリック→「送る」 に追加する方法も一緒に記載する。
【クイックランチャ表示】
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
上記を新規ツールバーで追加する。
追加したツールバーを右クリックし、「ボタン名の表示」・「タイトルの表示」のチェックを外す。
【「送る」の追加先】
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\SendTo
右クリック→「送る」 に追加する方法も一緒に記載する。
【クイックランチャ表示】
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
上記を新規ツールバーで追加する。
追加したツールバーを右クリックし、「ボタン名の表示」・「タイトルの表示」のチェックを外す。
【「送る」の追加先】
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\SendTo
Excel VBAのあれこれ
久しぶりにExcelでVBAを組んでみると、いろいろ忘れすぎててびっくりしたのでメモっておく。
'' ======================================
'' 既存のシートをコピーして新規ブックで保存
'' ======================================
Dim objNewBook As Workbook
' 新規ブックを作成
Set objNewBook = Workbooks.Add
' 既存のワークシートを新規ブックへコピー
Worksheets("テンプレ").Copy Before:= objNewBook.Worksheets("新規シート名")
' 新規ブックを保存
objNewBook.SaveAs "C:\テンプレから作成.xls"
objNewBook.close
Set objNewBook = Nothing
'' ======================================
'' ファイル選択ダイアログ
'' ======================================
Dim strFileFilter As String ' 選択ダイアログのファイルフィルター
Dim strPath As String ' 選択されているファイルのパス
' 選択できる拡張子はCSVと全てのファイル
strFileFilter = "CSVファイル(*.csv),*.csv" & _
"Excelファイル(*.xls),*.xls" & _
",すべてのファイル(*.*),*.*"
' ダイアログの初期ディレクトリにカレントディレクトリをセット
ChDir (CurDir)
' ファイル選択ダイアログを開く
strPath = Application.GetOpenFilename(strFileFilter)
If strPath = "False" Then
MgsBox "キャンセルされました。"
Else
MgsBox "選択したファイルのパス:" & strPath
End If
'' ======================================
'' フォルダ選択ダイアログ
'' ======================================
Dim objFolderDlg As Office.FileDialog ' ダイアログオブジェクト
' ダイアログオブジェクトの取得
Set objFolderDlg = Application.FileDialog(msoFileDialogFolderPicker)
' ダイアログの初期値をセット
objFolderDlg.InitialFileName = "C:\temp"
If objFolderDlg.Show() = True Then
MgsBox "キャンセルされました。"
Else
MgsBox "選択したフォルダのパス:" & objFolderDlg.SelectedItems(1)
End If
'' ======================================
'' 数値チェック関数
'' ======================================
Private Function IsNumber(ByVal p_strValue As String) As Boolean
Dim bolResult As Boolean
Dim i As Integer
bolResult = True
If Len(p_strValue) = 0 Then
bolResult = False
Else
For i = 1 To Len(p_strValue)
If Not Mid(p_strValue, i, 1) Like "[0-9]" Then
bolResult = False
Exit For
End If
Next
End If
IsNumber = bolResult
End Function
'' ======================================
'' 画面の自動更新、自動計算の停止・再開
'' ======================================
' 画面の更新停止
Application.ScreenUpdating = False
' 自動計算停止
Application.Calculation = xlManual
' 自動計算実行
Calculate
' 自動計算再開
Application.Calculation = xlAutomatic
' 画面の更新再開
Application.ScreenUpdating = True
'' ======================================
'' 既存のシートをコピーして新規ブックで保存
'' ======================================
Dim objNewBook As Workbook
' 新規ブックを作成
Set objNewBook = Workbooks.Add
' 既存のワークシートを新規ブックへコピー
Worksheets("テンプレ").Copy Before:= objNewBook.Worksheets("新規シート名")
' 新規ブックを保存
objNewBook.SaveAs "C:\テンプレから作成.xls"
objNewBook.close
Set objNewBook = Nothing
'' ======================================
'' ファイル選択ダイアログ
'' ======================================
Dim strFileFilter As String ' 選択ダイアログのファイルフィルター
Dim strPath As String ' 選択されているファイルのパス
' 選択できる拡張子はCSVと全てのファイル
strFileFilter = "CSVファイル(*.csv),*.csv" & _
"Excelファイル(*.xls),*.xls" & _
",すべてのファイル(*.*),*.*"
' ダイアログの初期ディレクトリにカレントディレクトリをセット
ChDir (CurDir)
' ファイル選択ダイアログを開く
strPath = Application.GetOpenFilename(strFileFilter)
If strPath = "False" Then
MgsBox "キャンセルされました。"
Else
MgsBox "選択したファイルのパス:" & strPath
End If
'' ======================================
'' フォルダ選択ダイアログ
'' ======================================
Dim objFolderDlg As Office.FileDialog ' ダイアログオブジェクト
' ダイアログオブジェクトの取得
Set objFolderDlg = Application.FileDialog(msoFileDialogFolderPicker)
' ダイアログの初期値をセット
objFolderDlg.InitialFileName = "C:\temp"
If objFolderDlg.Show() = True Then
MgsBox "キャンセルされました。"
Else
MgsBox "選択したフォルダのパス:" & objFolderDlg.SelectedItems(1)
End If
'' ======================================
'' 数値チェック関数
'' ======================================
Private Function IsNumber(ByVal p_strValue As String) As Boolean
Dim bolResult As Boolean
Dim i As Integer
bolResult = True
If Len(p_strValue) = 0 Then
bolResult = False
Else
For i = 1 To Len(p_strValue)
If Not Mid(p_strValue, i, 1) Like "[0-9]" Then
bolResult = False
Exit For
End If
Next
End If
IsNumber = bolResult
End Function
'' ======================================
'' 画面の自動更新、自動計算の停止・再開
'' ======================================
' 画面の更新停止
Application.ScreenUpdating = False
' 自動計算停止
Application.Calculation = xlManual
' 自動計算実行
Calculate
' 自動計算再開
Application.Calculation = xlAutomatic
' 画面の更新再開
Application.ScreenUpdating = True
登録:
投稿 (Atom)