Chciałbym dowiedzieć się, które z następujących kwerend będzie najbardziej wydajne dla uzyskania liczby wierszy na stole, więc próbuję wydrukować oświadczenia select. Wiem, że możesz dodać .selectStatement
do Queryable, ale nie wiem, czy to powie mi całą prawdę, ponieważ będę musiał usunąć kod generujący wynik, np. .list.length
i zastąp go numerem .selectStatement
. Slick prawdopodobnie podnosi, że szukasz długości i optymalizuje dalej, więc chcę zobaczyć select dla całego zapytania, w tym SQL, który zostanie wygenerowany powodu .list.length
lub .count).first
W jaki sposób drukuje się instrukcje select dla następujących zapytań Slick?
Query(MyTable).list.length
(for{mt <- MyTable} yield mt).list.length
(for{mt <- MyTable} yield mt.count).first
Jeśli jesteś na * nix "tail -f /path/to/query.log" powinien załatwić sprawę, nie? – virtualeyes
Dzięki, używam H2 w arkuszu, ale będę z nim grać. – Jack
@virtualeyes, które wydaje się być najlepszym (i jedynym) rozwiązaniem. W przypadku arkuszy roboczych i H2 należy zmienić poziom śledzenia w adresie URL bazy danych, np. niejawna wartość val session = Database.forURL ("jdbc: h2: mem: test1; TRACE_LEVEL_FILE = 4", driver = "org.h2.Driver"). createSession(). Proszę podać swoją sugestię (proszę wymienić arkusze robocze) jako odpowiedź. – Jack