|
|
|
@ -47,52 +47,77 @@ namespace SQLite_Console |
|
|
|
|
Console.WriteLine(); |
|
|
|
|
watch.Restart(); |
|
|
|
|
|
|
|
|
|
List<Thread> threads = new List<Thread>(); |
|
|
|
|
for (int i = 0; i < 20; i++) |
|
|
|
|
// Cach size |
|
|
|
|
PSqLite.ExecuteQuery("PRAGMA cache_size=10000;"); |
|
|
|
|
|
|
|
|
|
watch.Stop(); |
|
|
|
|
Console.WriteLine($"set cach size to 10000: {watch.ElapsedMilliseconds}ms"); |
|
|
|
|
Console.WriteLine(); |
|
|
|
|
watch.Restart(); |
|
|
|
|
|
|
|
|
|
//List<Thread> threads = new List<Thread>(); |
|
|
|
|
//for (int i = 0; i < 20; i++) |
|
|
|
|
//{ |
|
|
|
|
// threads.Add(new Thread(() => InsertRandomRows($"t{i + 1}", 1000))); |
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
//foreach (Thread thread in threads) |
|
|
|
|
//{ |
|
|
|
|
// thread.Start(); |
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
Random rnd = new Random(); |
|
|
|
|
for (int i = 0; i < 2000; i++) |
|
|
|
|
{ |
|
|
|
|
threads.Add(new Thread(() => InsertRandomRows($"t{i + 1}", 1000))); |
|
|
|
|
string guid = Guid.NewGuid().ToString(); |
|
|
|
|
int age = rnd.Next(1, 100); |
|
|
|
|
string name = $"Robo#{i + 1}"; |
|
|
|
|
string insertQry = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; |
|
|
|
|
PSqLite.ExecuteQuery(insertQry); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
foreach (Thread thread in threads) |
|
|
|
|
watch.Stop(); |
|
|
|
|
Console.WriteLine($"insert 2000 row case1: {watch.ElapsedMilliseconds}ms"); |
|
|
|
|
Console.WriteLine(); |
|
|
|
|
watch.Restart(); |
|
|
|
|
|
|
|
|
|
rnd = new Random(); |
|
|
|
|
using (SQLiteConnection conn = PSqLite.Connection) |
|
|
|
|
{ |
|
|
|
|
thread.Start(); |
|
|
|
|
conn.Open(); |
|
|
|
|
for (int i = 0; i < 2000; i++) |
|
|
|
|
{ |
|
|
|
|
string guid = Guid.NewGuid().ToString(); |
|
|
|
|
int age = rnd.Next(1, 100); |
|
|
|
|
string name = $"Robo#{i + 1}"; |
|
|
|
|
string insertQry = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; |
|
|
|
|
PSqLite.ExecuteQuery(conn, insertQry); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//Random rnd = new Random(); |
|
|
|
|
//for (int i = 0; i < 2000; i++) |
|
|
|
|
//{ |
|
|
|
|
// string guid = Guid.NewGuid().ToString(); |
|
|
|
|
// int age = rnd.Next(1, 100); |
|
|
|
|
// string name = $"Robo#{i + 1}"; |
|
|
|
|
// string insertQry = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; |
|
|
|
|
// PSqLite.ExecuteQuery(insertQry); |
|
|
|
|
//} |
|
|
|
|
conn.Close(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//watch.Stop(); |
|
|
|
|
//Console.WriteLine($"insert 2000 row case1: {watch.ElapsedMilliseconds}ms"); |
|
|
|
|
//Console.WriteLine(); |
|
|
|
|
//watch.Restart(); |
|
|
|
|
watch.Stop(); |
|
|
|
|
Console.WriteLine($"insert 2000 row case2: {watch.ElapsedMilliseconds}ms"); |
|
|
|
|
Console.WriteLine(); |
|
|
|
|
watch.Restart(); |
|
|
|
|
|
|
|
|
|
//rnd = new Random(); |
|
|
|
|
//using (SQLiteConnection conn = PSqLite.Connection) |
|
|
|
|
//{ |
|
|
|
|
// conn.Open(); |
|
|
|
|
// for (int i = 0; i < 2000; i++) |
|
|
|
|
// { |
|
|
|
|
// string guid = Guid.NewGuid().ToString(); |
|
|
|
|
// int age = rnd.Next(1, 100); |
|
|
|
|
// string name = $"Robo#{i + 1}"; |
|
|
|
|
// string insertQry = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; |
|
|
|
|
// PSqLite.ExecuteQuery(conn, insertQry); |
|
|
|
|
// } |
|
|
|
|
rnd = new Random(); |
|
|
|
|
string[] queries = new string[2000]; |
|
|
|
|
for (int i = 0; i < 2000; i++) |
|
|
|
|
{ |
|
|
|
|
string guid = Guid.NewGuid().ToString(); |
|
|
|
|
int age = rnd.Next(1, 100); |
|
|
|
|
string name = $"Robo#{i + 1}"; |
|
|
|
|
queries[i] = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// conn.Close(); |
|
|
|
|
//} |
|
|
|
|
PSqLite.ExecuteQuery(queries); |
|
|
|
|
|
|
|
|
|
//watch.Stop(); |
|
|
|
|
//Console.WriteLine($"insert 2000 row case2: {watch.ElapsedMilliseconds}ms"); |
|
|
|
|
//Console.WriteLine(); |
|
|
|
|
//watch.Restart(); |
|
|
|
|
watch.Stop(); |
|
|
|
|
Console.WriteLine($"insert 2000 row case3: {watch.ElapsedMilliseconds}ms"); |
|
|
|
|
Console.WriteLine(); |
|
|
|
|
watch.Restart(); |
|
|
|
|
|
|
|
|
|
//DataSet select = PSqLite.ExecuteSelectQuery("SELECT * FROM member"); |
|
|
|
|
//DataRowCollection rows = select.Tables[0].Rows; |
|
|
|
@ -146,15 +171,18 @@ namespace SQLite_Console |
|
|
|
|
using (SQLiteConnection conn = PSqLite.Connection) |
|
|
|
|
{ |
|
|
|
|
conn.Open(); |
|
|
|
|
PSqLite.ExecuteQuery("BEGIN TRANSACTION;"); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) |
|
|
|
|
{ |
|
|
|
|
string guid = Guid.NewGuid().ToString(); |
|
|
|
|
int age = rnd.Next(1, 100); |
|
|
|
|
string name = $"{identifier} Robo#{i + 1}"; |
|
|
|
|
string insertQry = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}')"; |
|
|
|
|
string insertQry = $"INSERT INTO member VALUES ('{name}', {age}, '{guid}');"; |
|
|
|
|
PSqLite.ExecuteQuery(conn, insertQry); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PSqLite.ExecuteQuery("BEGIN TRANSACTION;"); |
|
|
|
|
conn.Close(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|