Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace BookShopSystem.ConsoleClient
- {
- using System;
- using System.Collections.Generic;
- using System.Data.Entity;
- using System.Data.Entity.Infrastructure;
- using System.Diagnostics;
- using System.IO;
- using System.Linq;
- using BookShopSystem.Data;
- using BookShopSystem.Models;
- public class Measurements
- {
- public const int TableRows = 1000;
- public static void Main()
- {
- var context = new BookShopContext();
- var count = context.Authors.Count();
- //0. DrawTable
- //DrawTable();
- //1. AuthorNames with Console.WriteLine vs AuthorNames without Console.WriteLine()
- //GetAllAuthorNames1(context);
- //2. ToList vs nothing
- //GetAllAuthorNames2(context);
- //3. First element of materialised with ToList query vs first element as query
- //GetAllAuthorNames3(context);
- //4. Eager loading with Include vs not materialised vs not materialised query
- //GetAllAuthorNames4(context);
- //5. Eager loading with Include and ToList vs ToList
- //GetAllAuthorNames5(context);
- //6. Eager loading with Include and FirstOrDefault vs FirstOrDefault
- //GetAllAuthorNames6(context);
- //7. Eager loading with Include and then foreach vs foreach, both not materialised
- //GetAllAuthorNames7(context);
- //8. Eager loading with Include and then foreach vs foreach, both materialised in the foreach with ToList
- //GetAllAuthorNames8(context);
- //9. Eager loading with Include and then foreach vs foreach , both materialised in the foreach with Count
- //GetAllAuthorNames9(context);
- //10. Eager loading with Include, then foreach and where vs foreach and where
- //GetAllAuthorNames10(context);
- //11. IQueryable Where with ToList vs ToList and IEnumerable Where
- //GetAllAuthorNames11(context);
- //12. IQueryable Where, Select with ToList vs ToList and IEnumerable Where, Select
- //GetAllAuthorNames12(context);
- //13. Eager Loading with Include and foreach with Console.WriteLine vs Lazy loading in foreach with Console.WriteLine
- //GetAllAuthorNames13(context);
- //14. Eager Loading with Select and foreach with Console.WriteLine vs Lazy loading in foreach with Console.WriteLine
- //GetAllAuthorNames14(context);
- //15. Select and OrderBy with ToList materialisation vs materialisation first, then Select, OrderBy. Not an N + 1 problem
- //GetAllAuthorNames15(context);
- //16. Select and OrderBy with ToList materialisation vs materialisation first, then Select, OrderBy. N + 1 problem
- //GetAllAuthorNames16(context);
- //17. Native Select and OrderBy with ToList query vs Select and OrderBy with ToList
- //GetAllAuthorNames17(context);
- //18. Native Select and OrderBy with ToList, printed in foreach vs Select and OrderBy with ToList, printed in foreach
- GetAllAuthorNames18(context);
- }
- public static void DrawTable()
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- writer.WriteLine(new string('-', 144));
- writer.Write("|# ");
- writer.Write("| Table Rows ");
- writer.Write("|" + " Iterations".PadRight(18));
- writer.Write("|" + " Measured query".PadRight(29));
- writer.Write("|" + " Elapsed Time".PadRight(23));
- writer.Write("|" + " Measured query".PadRight(29));
- writer.WriteLine("|" + " Elapsed Time".PadRight(23) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames1(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 100;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Select(a=>a.FirstName);
- foreach (var author in authors)
- {
- Console.WriteLine(author);
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Select(a=>a.FirstName);
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|1 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Select,Console.WriteLine".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| Select".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames2(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 10000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authorsCount = context.Authors.ToList().Count;
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authorsCount = context.Authors.Count();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|2 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| --".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames3(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var author = context.Authors.ToList().FirstOrDefault();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var author = context.Authors.FirstOrDefault();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|3 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| ToList, FirstOrDefault".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| FirstOrDefault".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames4(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Include(a=>a.Books).Count();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Count();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|4 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| --".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames5(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Include(a => a.Books).ToList();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.ToList();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|5 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include, ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| ToList".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames6(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var author = context.Authors.Include(a => a.Books).FirstOrDefault();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var author = context.Authors.FirstOrDefault();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|5 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include,FirstOrDefault".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| FirstOrDefault".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames7(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Include(a => a.Books);
- foreach (var author in authors)
- {
- var books = author.Books;
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors;
- foreach (var author in authors)
- {
- var books = author.Books;
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|7 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include, foreach".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| foreach".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames8(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Include(a => a.Books);
- foreach (var author in authors)
- {
- var books = author.Books.ToList();
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors;
- foreach (var author in authors)
- {
- var books = author.Books.ToList();
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|8 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include, foreach with ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| foreach with ToList".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames9(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Include(a => a.Books);
- foreach (var author in authors)
- {
- var bookCount = author.Books.Count;
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors;
- foreach (var author in authors)
- {
- var bookCount = author.Books.Count;
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|9 ");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include, foreach with Count".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| foreach with Count".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames10(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Include(a => a.Books);
- foreach (var author in authors)
- {
- var bookCount = author.Books.Where(b=>b.Edition == EditionType.Gold);
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors;
- foreach (var author in authors)
- {
- var bookCount = author.Books.Where(b => b.Edition == EditionType.Gold);
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|10");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include, foreach with Where".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| foreach with Where".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames11(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Where(a => a.FirstName.Length >= 5).ToList();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.ToList().Where(a => a.FirstName.Length >= 5);
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|11");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Where,ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| ToList,Where".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames12(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.Where(a => a.FirstName.Length >= 5).Select(a=>a.LastName).ToList().Count;
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Authors.ToList().Where(a => a.FirstName.Length >= 5).Select(a => a.LastName).Count();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|12");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Where,Select,ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| ToList,Where,Select".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames13(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 100;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var books = context.Books.Include(a => a.Author);
- foreach (var book in books)
- {
- Console.WriteLine(book.Author.FirstName);
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var books = context.Books;
- foreach (var book in books)
- {
- Console.WriteLine(book.Author.FirstName);
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|13");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Include, Console.WriteLine".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| Console.writeLine".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames14(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 100;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.Select(b=>b.Author.FirstName);
- foreach (var author in authors)
- {
- Console.WriteLine(author);
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var books = context.Books;
- foreach (var book in books)
- {
- Console.WriteLine(book.Author.FirstName);
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|14");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Select, Console.WriteLine".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| Console.writeLine".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames15(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.Select(b => b.Author.FirstName).OrderBy(a => a).ToList();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.ToList().Select(b => b.Author.FirstName).OrderBy(a => a);
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|15");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Select,OrderBy,ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| ToList,Select,OrderBy".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames16(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 100;
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.Select(b => b.Author.FirstName).OrderBy(a => a).ToList();
- foreach (var author in authors)
- {
- Console.WriteLine(author);
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.ToList().Select(b => b.Author.FirstName).OrderBy(a => a);
- foreach (var author in authors)
- {
- Console.WriteLine(author);
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|16");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("| Select,OrderBy,ToList,Print".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("| ToList,Select,OrderBy,Print".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames17(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 1000;
- var sql = @"SELECT Authors.FirstName FROM Books
- INNER JOIN Authors
- ON Books.AuthorId = Authors.Id
- ORDER BY Authors.FirstName ASC";
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.Select(b => b.Author.FirstName).OrderBy(a => a).ToList();
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Database.SqlQuery<string>(sql).ToList();
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|17");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("|Select,OrderBy,ToList".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("|Native Select,OrderBy,ToList".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- public static void GetAllAuthorNames18(BookShopContext context)
- {
- using (var writer = new StreamWriter("../../../Resources/measurements.txt", true))
- {
- var sw = new Stopwatch();
- var iterationsCount = 100;
- var sql = @"SELECT Authors.FirstName FROM Books
- INNER JOIN Authors
- ON Books.AuthorId = Authors.Id
- ORDER BY Authors.FirstName ASC";
- sw.Start();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Books.Select(b => b.Author.FirstName).OrderBy(a => a).ToList();
- foreach (var author in authors)
- {
- Console.WriteLine(author);
- }
- }
- sw.Stop();
- var elapsedWith = sw.Elapsed;
- sw.Restart();
- for (var i = 1; i <= iterationsCount; i++)
- {
- var authors = context.Database.SqlQuery<string>(sql).ToList();
- foreach (var author in authors)
- {
- Console.WriteLine(author);
- }
- }
- sw.Stop();
- var elapsedWithout = sw.Elapsed;
- writer.Write("|18");
- writer.Write("|".PadRight(5) + TableRows.ToString().PadRight(8));
- writer.Write("|".PadRight(5) + iterationsCount.ToString().PadRight(14));
- writer.Write("|Select,OrderBy,ToList,Print".PadRight(30));
- writer.Write("|".PadRight(5) + elapsedWith.ToString().PadRight(19));
- writer.Write("|Native same query,Print".PadRight(30));
- writer.WriteLine("|".PadRight(5) + elapsedWithout.ToString().PadRight(19) + "|");
- writer.WriteLine(new string('-', 144));
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment