Blog Post

Get your Query History in Redshift

,

Because my Windows machine apparently decides to install updates over night (and thus reboot my machine), it has happened that I lost the query that I was writing for Redshift in the tool DBeaver. When you work with SQL Server Management Studio (SSMS), you typically don’t have this issue as a temporary copy is always saved. Close down SSMS, restart it and the queries are still there.

If you want to retrieve your query history, you can query the system table stl_query. You probably want to filter on a particular user (yourself). You can find the necessary info in the table pg_user.However, I got some weird errors when I tried to join the two tables together.

However, using a subquery does work:

SELECT userid, query,label,querytxt,starttime,endtime
FROM stl_query q
WHERE q.userid = (SELECT usesysid FROM pg_user u WHERE u.usename = 'myusername')
ORDER BY starttime DESC

The only problem is that the query from the result is not formatted. Luckily DBeaver has a formatting option that can do this for you. You don’t have this issue in SSMS, especially when you use SQLPrompt where you can retrieve closed tabs. Snowflake also has a nice query history table you can query (and it has a visual history tab as well, where you can get the formatted query).

Update:

I forgot to mention that another drawback of getting unformatted code is that single line comments

-- you know, like this one

really mess up everything. Because if you want to use your automatic formatter, it will likely error out over syntax issues since part of your SQL code will suddenly be commented out. All the more reason to use block comments

/* like this one */

in your SQL scripts.

 

The post Get your Query History in Redshift first appeared on Under the kover of business intelligence.

Original post (opens in new tab)
View comments in original post (opens in new tab)

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating