Skip to content

Instantly share code, notes, and snippets.

@warpech
Created February 21, 2014 10:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save warpech/9131896 to your computer and use it in GitHub Desktop.
Save warpech/9131896 to your computer and use it in GitHub Desktop.
Test performance of >= && <= operators
using System;
using Starcounter;
using System.Diagnostics;
using System.Collections.Generic;
[Database]
public class TestRange
{
public int Name;
public long FromNum;
public long ToNum;
public TestCompany Comp;
}
[Database]
public class TestCompany
{
public int Name;
}
class Hello
{
static void Measure(string query, List<object> queryParams)
{
Stopwatch sw = new Stopwatch();
sw.Start();
var range = Db.SQL<TestCompany>(query, queryParams.ToArray()).First;
sw.Stop();
if (range != null)
{
Console.WriteLine(query + ", Elapsed={0}", sw.Elapsed);
}
else
{
Console.WriteLine(query + ", Nothing found");
}
}
static void Main()
{
Console.WriteLine("Hello World!");
Db.Transaction(() =>
{
Db.SlowSQL("DELETE FROM TestRange");
Db.SlowSQL("DELETE FROM TestCompany");
for (int i = 0; i < 1000000; i++)
{
new TestRange()
{
Name = i,
FromNum = i * 100,
ToNum = i * 100 + 99,
Comp = new TestCompany()
};
}
});
Measure("SELECT r.Comp FROM TestRange r WHERE FromNum = ? FETCH ? ", new List<object>() { 100000, 1 });
Measure("SELECT r.Comp FROM TestRange r WHERE FromNum = ? FETCH ? ", new List<object>() { 100000, 1 });
Measure("SELECT r.Comp FROM TestRange r WHERE FromNum > ? FETCH ? ", new List<object>() { 100050, 1 });
Measure("SELECT r.Comp FROM TestRange r WHERE FromNum >= ? FETCH ? ", new List<object>() { 100050, 1 });
Measure("SELECT r.Comp FROM TestRange r WHERE FromNum < ? AND ToNum > ? FETCH ? ", new List<object>() { 100050, 100050, 1 });
Measure("SELECT r.Comp FROM TestRange r WHERE FromNum <= ? AND ToNum >= ? FETCH ? ", new List<object>() { 100050, 100050, 1 });
Console.WriteLine("Finished!");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment