Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Postgres Analyze

Posted on 2011-09-06
6
Medium Priority
?
615 Views
Last Modified: 2012-05-12
We have a function that truncates a table (table1), then populates it with several million rows and then inner joins to another table (table2) that also has several million rows.

Is it possible/advisable to ANALYZE table1 within the function? i.e., right after we dump the millions of rows into table1, can we issue an “ANALYZE table1” from within the function before we join it to table2?
0
Comment
Question by:dthansen
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
6 Comments
 
LVL 22

Expert Comment

by:earth man2
ID: 36493771
No
Analyze the SQL statements that are causing your bottlneck individually standalone.
0
 
LVL 4

Expert Comment

by:thewild
ID: 36501513
No, you cannot run VACUUM ANALYZE inside a function.
More generally, you cannot run VACUUM inside a transaction block. Since functions are always run in a transaction, VACUUM is not possible inside them.

Instead of a stored procedure, you could run the statements one by one.
0
 

Author Comment

by:dthansen
ID: 36501904
I am not concerned with running VACUUM ANALYZE inside the function, just ANALYZE.

Thanks,
Dean
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 4

Accepted Solution

by:
thewild earned 2000 total points
ID: 36502027
Sorry, since you were asking whether it was possible, I thought you meant VACUUM ANALYZE.
ANALYZE is possible inside a procedure.
In your case it is probably recommended.
Have you tried to run EXPLAIN ANALYZE on the query joining your tables with and without running ANALYZE first ?
0
 

Author Comment

by:dthansen
ID: 36502467
One of the tables is a temporary table created function. I'm not sure it is possible to run an EXPLAIN ANALYZE on that table as it is both created and dropped within the function.

Thanks,
Dean
0
 
LVL 22

Expert Comment

by:earth man2
ID: 36515448
create a new stored procedure that creates the data as before but does not delete the table and data.  Then interactively execute the SQL with EXPLAIN ANALYZE
0

Featured Post

Will your db performance match your db growth?

In Percona’s white paper “Performance at Scale: Keeping Your Database on Its Toes,” we take a high-level approach to what you need to think about when planning for database scalability.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Recently I was talking with Tim Sharp, one of my colleagues from our Technical Account Manager team about MongoDB’s scalability. While doing some quick training with some of the Percona team, Tim brought something to my attention...
Your data is at risk. Probably more today that at any other time in history. There are simply more people with more access to the Web with bad intentions.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question