2009年10月28日水曜日

groovyとSQL Serverでインデックスの無効化・リビルドを行う

groovyとSQL Serverでインデックスの無効化・リビルドを行うには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

table = "company"
index = "uk_company_name"
// インデックスの無効化
sql.execute("alter index " + index + " ON ${table} DISABLE")
// 無効化されたインデックスの表示
sql.eachRow("select * from sys.indexes where is_disabled = 1"){
// インデックス名
println("name:${it.name}")
println "----"
}
// インデックスのリビルド
sql.execute("alter index " + index + " ON ${table} REBUILD")
// 無効化されたインデックスの表示
sql.eachRow("select * from sys.indexes where is_disabled = 1"){
// インデックス名
println("name:${it.name}")
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update14, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
ALTER INDEX (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188388.aspx

0 件のコメント:

コメントを投稿