add benchmark tests for mssql
This commit is contained in:
parent
3f2328d918
commit
d1a0338322
|
@ -4,18 +4,16 @@ package xorm
|
|||
// +build windows
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"testing"
|
||||
|
||||
_ "github.com/lunny/godbc"
|
||||
)
|
||||
|
||||
/*
|
||||
CREATE DATABASE IF NOT EXISTS xorm_test CHARACTER SET
|
||||
utf8 COLLATE utf8_general_ci;
|
||||
*/
|
||||
const mssqlConnStr = "driver={SQL Server};Server=192.168.20.135;Database=xorm_test; uid=sa; pwd=1234;"
|
||||
|
||||
func newMssqlEngine() (*Engine, error) {
|
||||
return NewEngine("odbc", "driver={SQL Server};Server=192.168.20.135;Database=xorm_test; uid=sa; pwd=1234;")
|
||||
return NewEngine("odbc", mssqlConnStr)
|
||||
}
|
||||
|
||||
func TestMssql(t *testing.T) {
|
||||
|
@ -51,7 +49,41 @@ func TestMssqlWithCache(t *testing.T) {
|
|||
testAll2(engine, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlNoCache(t *testing.B) {
|
||||
func newMssqlDriverDB() (*sql.DB, error) {
|
||||
return sql.Open("odbc", mssqlConnStr)
|
||||
}
|
||||
|
||||
const (
|
||||
createTableMssql = `IF NOT EXISTS (SELECT [name] FROM sys.tables WHERE [name] = 'big_struct' ) CREATE TABLE
|
||||
"big_struct" ("id" BIGINT PRIMARY KEY IDENTITY NOT NULL, "name" VARCHAR(255) NULL, "title" VARCHAR(255) NULL,
|
||||
"age" VARCHAR(255) NULL, "alias" VARCHAR(255) NULL, "nick_name" VARCHAR(255) NULL);
|
||||
`
|
||||
|
||||
dropTableMssql = "IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'big_struct') and OBJECTPROPERTY(id, N'IsUserTable') = 1) DROP TABLE IF EXISTS `big_struct`;"
|
||||
)
|
||||
|
||||
func BenchmarkMssqlDriverInsert(t *testing.B) {
|
||||
doBenchDriver(newMssqlDriverDB, createTableMssql, dropTableMssql,
|
||||
doBenchDriverInsert, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlDriverFind(t *testing.B) {
|
||||
doBenchDriver(newMssqlDriverDB, createTableMssql, dropTableMssql,
|
||||
doBenchDriverFind, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlNoCacheInsert(t *testing.B) {
|
||||
engine, err := newMssqlEngine()
|
||||
defer engine.Close()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
//engine.ShowSQL = true
|
||||
doBenchInsert(engine, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlNoCacheFind(t *testing.B) {
|
||||
engine, err := newMssqlEngine()
|
||||
defer engine.Close()
|
||||
if err != nil {
|
||||
|
@ -62,7 +94,18 @@ func BenchmarkMssqlNoCache(t *testing.B) {
|
|||
doBenchFind(engine, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlCache(t *testing.B) {
|
||||
func BenchmarkMssqlNoCacheFindPtr(t *testing.B) {
|
||||
engine, err := newMssqlEngine()
|
||||
defer engine.Close()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
//engine.ShowSQL = true
|
||||
doBenchFindPtr(engine, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlCacheInsert(t *testing.B) {
|
||||
engine, err := newMssqlEngine()
|
||||
defer engine.Close()
|
||||
if err != nil {
|
||||
|
@ -70,5 +113,30 @@ func BenchmarkMssqlCache(t *testing.B) {
|
|||
return
|
||||
}
|
||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||
|
||||
doBenchInsert(engine, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlCacheFind(t *testing.B) {
|
||||
engine, err := newMssqlEngine()
|
||||
defer engine.Close()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||
|
||||
doBenchFind(engine, t)
|
||||
}
|
||||
|
||||
func BenchmarkMssqlCacheFindPtr(t *testing.B) {
|
||||
engine, err := newMssqlEngine()
|
||||
defer engine.Close()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||
|
||||
doBenchFindPtr(engine, t)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue