sql >> Databáze >  >> RDS >> Mysql

Jak zaznamenám dobu provádění spuštěných příkazů SQL, které jsou uloženy v souborech?

Zjištění času provedení , měli byste inicializovat objekt data na začátku programu a poté jej porovnat s jiným objektem data na konci programu. To vám dá celočíselnou hodnotu, jak dlouho trvalo provedení. Poté použijte tento int, kdekoli jej potřebujete (např. vytiskněte jej do konzole, do souboru atd.)

Date startDate = new Date();
//Run the rest of the program
Date endDate = new Date();
int msElapsedTime = startDate.getTime() - endDate.getTime();

Pokud nepotřebujete v programu Java dělat nic souvisejícího s výsledky vašeho dotazu, můžete to udělat zatraceně jednoduše pomocí runtime.exec() aby mysql spustil dotazy. Jedinou velkou nevýhodou je, že nemůžete vytisknout výsledný počet ovlivněných řádků:

Date startDate = new Date();
runtime.exec("mysql db_name < /home/liova/download/tpch/queries/Q1.sql");
Date endDate = new Date();
int msElapsedTime = startDate.getTime() - endDate.getTime();

Pokud skutečně potřebujete s výsledky něco udělat, pak runtime.exec() vám nebude stačit. Čtěte dále...

Pro čtení zdroje SQL , stačí si jej přečíst jako textový soubor. Nejjednodušší bude, když budete mít každý řádek SQL jako samostatný SQL dotaz, protože jinak budete muset provést nějakou analýzu a úpravu. Zde je příklad čtení souboru jeden řádek po druhém.

Spuštění SQL , použijte JDBC. Zde je výukový program na to. Položky 1 až 5 podrobně popisují vše, co byste měli potřebovat pro spuštění sql a použití výsledků (od navázání připojení sql přes spuštění dotazu až po zpracování objektu resultSet, který se vrátí). Pokud vám některý z těchto kroků způsobí potíže, nejlépe uděláte, když položíte samostatnou otázku přizpůsobenou konkrétnímu problému, který v procesu máte.



  1. MySQL celočíselné aritmetické problémy bez znaménka?

  2. django - přísný režim MySQL s adresou URL databáze v nastavení

  3. Operátor otazníku v dotazu

  4. Jak převést 2d pole z PostgreSQL DB na java 2d pole pomocí JDBI?