PostgreSQL āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 1 - āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚

āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° - āĻ˛ā§āĻ¯āĻžāĻŸāĻŋāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻŦāĻžāĻĻ - āĻ…āĻ¨ā§āĻĒā§āĻ°āĻžāĻŖāĻŋāĻ¤āĨ¤
āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ (c) āĻ†āĻ°. āĻĄāĻŋāĻœā§‡āĻ˛āĨ¤
āĻāĻĒāĻŋāĻ—ā§āĻ°āĻžāĻĢāĨ¤
PostgreSQL āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 1 - āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚
āĻ…āĻĨāĻŦāĻž āĻ•ā§‡āĻ¨ āĻāĻ•āĻœāĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ…ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻŸā§āĻ°ā§‡āĻŸāĻ°āĻ•ā§‡ āĻ¤āĻžāĻ° āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ…āĻ¤ā§€āĻ¤ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ—āĻ˛ā§āĻĒāĨ¤

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻŽā§āĻ¯āĻžāĻšāĻ—ā§āĻ˛ā§‹ āĻāĻ˛ā§‹āĻŽā§‡āĻ˛ā§‹āĨ¤ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛ā§‡āĻ–āĻ•ā§‡āĻ° āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻŽāĻ¤āĻžāĻŽāĻ¤.

āĻ“āĻ¯āĻŧāĻžāĻ°ā§‡āĻ¨ā§āĻŸāĻŋāĻ° āĻĻāĻžāĻŦāĻŋāĻ¤ā§āĻ¯āĻžāĻ—: āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§‹āĻ¨ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻŦāĻ‚ āĻ¸āĻ āĻŋāĻ• āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĨāĻžāĻ•āĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ "AS IS" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻž.
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻĒā§āĻ°āĻšā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§‡ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻ•āĻžāĻ°āĻŖā§‡,
āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻ¤, āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¤ā§€āĻ•ā§āĻˇā§āĻŖāĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡āĨ¤
āĻ…āĻ¤āĻāĻŦ, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ†āĻ•āĻžāĻ°ā§‡ āĻ§āĻžāĻ°āĻŖāĻž āĻāĻŦāĻ‚ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻŦā§‡āĨ¤
āĻšāĻ¯āĻŧāĻ¤ā§‹ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋ āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡ āĻĒā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻ¤āĻ°ā§‡ āĻŦāĻžāĻĄāĻŧāĻŦā§‡, āĻŦāĻž āĻ¨āĻžāĻ“ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡.

āĻ—āĻ˛ā§āĻĒā§‡āĻ° āĻļā§āĻ°ā§-āĻŽāĻ¨ā§‡ āĻ†āĻ›ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¸āĻŦÂģ.
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ āĻ¯āĻž āĻ˜āĻŸā§‡āĻ›ā§‡, āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻĻā§‡ - "PostgreSQL āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻļā§āĻ˛ā§‡āĻˇāĻŖÂģ

āĻ•ā§‡āĻ¨ āĻ†āĻŽāĻŋ āĻāĻ‡ āĻ¸āĻŦ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨?

āĻ­āĻžāĻ˛, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¯āĻžāĻ¤ā§‡ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ…āĻŦāĻ¸āĻ°ā§‡āĻ° āĻ—ā§ŒāĻ°āĻŦāĻŽāĻ¯āĻŧ āĻĻāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻ¤, āĻ¯āĻž āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—āĻ¤ āĻ•āĻ°āĻžāĨ¤ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ†āĻŽāĻŋ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻĒā§ƒāĻĨāĻ• āĻ…āĻ‚āĻļāĻ—ā§āĻ˛āĻŋ āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻ‡āĨ¤

āĻ­āĻžāĻ˛, āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦā§‡ - āĻšāĻ āĻžā§Ž āĻāĻŸāĻŋ āĻ•āĻžāĻ°āĻ“ āĻĒāĻ•ā§āĻˇā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻšāĻžāĻ•āĻžāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ°ā§‡āĻ• āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻ°ā§āĻŽāĻĢāĻ˛ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°ā§āĻ¨ (āĻ–āĻŦāĻ°āĻ­āĻ¸ā§āĻ•āĻŋ āĻ¨āĻ¯āĻŧ)āĨ¤ āĻāĻ‡ āĻĒā§ƒāĻĨāĻŋāĻŦā§€āĻ¤ā§‡ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻšāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž. āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻŖāĻž āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚ āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋāĻ•ā§‡ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĨ¤

āĻ¤āĻžāĻ‡ āĻ†āĻ¸ā§āĻ¤ā§‡ āĻ†āĻ¸ā§āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•...

āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĒā§āĻ°āĻŖāĻ¯āĻŧāĻ¨.

āĻ‰āĻĒāĻ˛āĻŦā§āĻ§:

PostgreSQL(10.5), āĻŽāĻŋāĻļā§āĻ° āĻ˛ā§‹āĻĄ (OLTP+DSS), āĻŽāĻžāĻāĻžāĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻšāĻžāĻ˛āĻ•āĻž āĻ˛ā§‹āĻĄ, AWS āĻ•ā§āĻ˛āĻžāĻ‰āĻĄā§‡ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤
āĻ•ā§‹āĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ¨ā§‡āĻ‡, āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻāĻ•āĻŸāĻŋ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ AWS āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨, āĻ­āĻžāĻ°ā§€ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§āĻ°āĻļā§āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ¤āĻĨā§āĻ¯ āĻ–ā§āĻāĻœā§āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻ›ā§‡āĨ¤

āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻŦāĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ

āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§‚āĻ˛āĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¯āĻžāĻ°āĻž āĻ•āĻ°ā§āĻŽā§€āĻĻā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻĨāĻžāĻ•āĻžāĻ° āĻ•āĻĨāĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ‚ āĻ•ā§āĻˇāĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‹āĻ•āĻžāĻŦāĻŋāĻ˛āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĻāĻŋāĻ¨āĨ¤ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ°

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ 1 - "āĻšāĻžāĻšāĻŋāĻĻāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ•āĻžāĻœ āĻ•āĻ°āĻž"

āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¯ā§‡āĻŽāĻ¨ āĻ†āĻ›ā§‡ āĻ°ā§‡āĻ–ā§‡ āĻĻāĻŋāĻ‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ—ā§āĻ°āĻžāĻšāĻ• āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯, āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻŸ āĻ¨āĻž āĻšāĻ¨ āĻ¤āĻŦā§‡ āĻ¤āĻŋāĻ¨āĻŋ āĻ‡-āĻŽā§‡āĻ‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦāĻž āĻŸāĻŋāĻ•āĻŋāĻŸ āĻŦāĻžāĻ•ā§āĻ¸ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˜āĻŸāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻĄāĻŋāĻŦāĻŋāĻ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻĻā§‡āĻ° āĻ…āĻŦāĻšāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡āĻ¨āĨ¤
āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€, āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻœā§āĻžāĻĒā§āĻ¤āĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°, āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻŦā§āĻāĻŦā§‡āĻ¨, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ…āĻĢāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨ āĻŦāĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨, āĻāĻ‡ āĻ†āĻļāĻžāĻ¯āĻŧ āĻ¯ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤
āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸāĻ¸, āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻŽā§āĻĒāĻ¸āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸāĻ¸:
1. āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻžāĻ° āĻ¨ā§‡āĻ‡
2. āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻ‡āĻ°ā§‡ āĻŦā§‡āĻ° āĻšāĻ¯āĻŧā§‡ āĻ¨ā§‹āĻ‚āĻ°āĻž āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻ¯ā§‹āĻ— āĻĨāĻžāĻ•ā§‡āĨ¤
3. āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻŽāĻ¯āĻŧ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻ§āĻž:
1. āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻŦāĻž āĻĒāĻ°ā§‡, āĻ—ā§āĻ°āĻžāĻšāĻ• āĻāĻ‡ āĻĒā§ƒāĻĨāĻŋāĻŦā§€āĻ¤ā§‡ āĻ¸āĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧāĻŦāĻŋāĻšāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻŦā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻ†āĻŦāĻžāĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨ - āĻ•ā§‡āĻ¨ āĻ†āĻŽāĻŋ āĻ¤āĻžāĻĻā§‡āĻ° āĻ†āĻŽāĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ›āĻŋ? āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āĻ‡ - āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¯āĻ–āĻ¨ āĻ—ā§āĻ°āĻžāĻšāĻ• āĻŦāĻŋāĻ°āĻ•ā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻŦāĻŋāĻĻāĻžāĻ¯āĻŧ āĻ¨ā§‡āĻŦā§‡āĨ¤ āĻ†āĻ° āĻĢāĻŋāĻĄāĻžāĻ° āĻ–āĻžāĻ˛āĻŋāĨ¤ āĻāĻŸāĻž āĻĻā§āĻƒāĻ–āĻœāĻ¨āĻ•.
2. āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻ° āĻŦāĻŋāĻ•āĻžāĻļ āĻļā§‚āĻ¨ā§āĻ¯āĨ¤
3. āĻ•āĻžāĻœ āĻāĻŦāĻ‚ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§‡ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ 2 - "āĻ–āĻžā§āĻœāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨āĻžāĻš, āĻœā§āĻ¤āĻž āĻĒāĻ°ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻ¨"

āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻ 1-āĻ•ā§‡āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻšāĻŦā§‡. āĻ†āĻŽāĻ°āĻž āĻĄā§‡āĻŸāĻž āĻ…āĻ­āĻŋāĻ§āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛ āĻĻā§ƒāĻļā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§‡āĻ° āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻšā§āĻ› āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§‡āĻ° āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋ, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĻ•ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ¸āĻŋ, āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻ•ā§āĻ°āĻŽā§‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻāĻŦāĻ‚ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻŋ, āĻ¯ā§‡āĻŽāĻ¨āĻŸāĻŋ āĻ›āĻŋāĻ˛āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻŦāĻž āĻ–ā§āĻŦ āĻŦā§‡āĻļāĻŋ āĻ—ā§āĻ°āĻžāĻĢ, āĻŸā§‡āĻŦāĻŋāĻ˛, āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻ¨ā§‡āĻ‡āĨ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻœāĻŋāĻ¨āĻŋāĻ¸ - āĻ¯ā§‡ āĻ†āĻ°ā§‹, āĻ†āĻ°ā§‹ āĻšāĻŦā§‡.
āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻ 2- āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ - āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻšāĻžāĻ˛āĻžāĻ¨āĨ¤
āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻ 3-āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¨āĻĨāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻ›āĻŋ, āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¨āĻĨāĻŋāĻŸāĻŋāĻ•ā§‡ āĻŦāĻ˛āĻŋ, āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ - "āĻ†āĻŽāĻ°āĻž āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸āĻœā§āĻœāĻŋāĻ¤ āĻ•āĻ°āĻŦāĨ¤"
āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻ 4- āĻ—ā§āĻ°āĻžāĻšāĻ•, āĻ—ā§āĻ°āĻžāĻĢ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ā§‡āĻ° āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻšāĻŋāĻŽāĻž āĻĻā§‡āĻ–ā§‡, āĻāĻ•āĻŸāĻŋ āĻļāĻŋāĻļā§āĻ¸ā§āĻ˛āĻ­ āĻ¨āĻŋāĻ°ā§āĻŦā§‹āĻ§ āĻ†āĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§‡ - āĻāĻ–āĻ¨ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡, āĻļā§€āĻ˜ā§āĻ°āĻ‡āĨ¤ āĻāĻŦāĻ‚, āĻ¸āĻšāĻœā§‡ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻĨāĻžāĻšā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ†āĻ°ā§āĻĨāĻŋāĻ• āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ‚āĻļ āĻ¨āĻŋāĻ¨āĨ¤ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ“ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻ°āĻž āĻ•āĻ ā§‹āĻ° āĻĒāĻ°āĻŋāĻļā§āĻ°āĻŽ āĻ•āĻ°āĻ›ā§‡āĻ¨āĨ¤ āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ˛ā§‹āĻĄ āĻšāĻšā§āĻ›ā§‡āĨ¤
āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻ 5- āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ§āĻžāĻĒ 1 āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§āĻ¨.
āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸāĻ¸, āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻŽā§āĻĒāĻ¸āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸāĻ¸:
1. āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ° āĻāĻŦāĻ‚ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻĻā§‡āĻ° āĻœā§€āĻŦāĻ¨ āĻ¸āĻšāĻœ, āĻ…āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒā§‡ āĻĒāĻ°āĻŋāĻĒā§‚āĻ°ā§āĻŖāĨ¤ āĻ¸āĻŦāĻ‡ āĻ—ā§āĻžā§āĻœāĻ¨, āĻ¸āĻŦāĻžāĻ‡ āĻŦā§āĻ¯āĻ¸ā§āĻ¤āĨ¤
2. āĻ—ā§āĻ°āĻžāĻšāĻ•ā§‡āĻ° āĻœā§€āĻŦāĻ¨āĻ“ āĻ–āĻžāĻ°āĻžāĻĒ āĻ¨āĻ¯āĻŧ - āĻ¤āĻŋāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸā§ āĻ§ā§ˆāĻ°ā§āĻ¯ āĻ§āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻ­āĻžāĻ˛ āĻšāĻšā§āĻ›ā§‡ āĻ¨āĻž, āĻ­āĻžāĻ˛, āĻ­āĻžāĻ˛ - āĻāĻ‡ āĻĒā§ƒāĻĨāĻŋāĻŦā§€ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧ, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻœā§€āĻŦāĻ¨ā§‡ - āĻ†āĻĒāĻ¨āĻŋ āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻžāĻ¨ āĻšāĻŦā§‡āĻ¨āĨ¤
āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻ§āĻž:
1. āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻŦāĻž āĻĒāĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻĨāĻžāĻ•āĻŦā§‡ āĻ¯ā§‡ āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ•āĻ°āĻŦā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸā§ āĻ¸āĻ¸ā§āĻ¤āĻžāĨ¤ āĻ†āĻ° āĻ°ā§‡āĻœāĻžāĻ˛ā§āĻŸ āĻāĻ•āĻ‡ āĻšāĻ˛ā§‡ āĻ•ā§‡āĻ¨ āĻŦā§‡āĻļāĻŋ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¯āĻž āĻ†āĻŦāĻžāĻ° āĻĢāĻŋāĻĄāĻžāĻ°ā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ§āĻžāĻ¨ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤
2. āĻāĻŸāĻž āĻŦāĻŋāĻ°āĻ•ā§āĻ¤āĻŋāĻ•āĻ°. āĻ•ā§‹āĻ¨ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ…āĻ°ā§āĻĨāĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒ āĻ•ā§‡āĻŽāĻ¨ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤āĻŋāĻ•āĻ°āĨ¤
3. āĻ†āĻ—ā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡āĻ° āĻŽāĻ¤ā§‹ - āĻ•ā§‹āĻ¨ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ¨ā§‡āĻ‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻœāĻ¨ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻŦāĻŋāĻ¯āĻŧā§‹āĻ— āĻšāĻ˛ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻŦāĻŋāĻĒāĻ°ā§€āĻ¤ā§‡, āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻāĻ•āĻŸāĻŋ IDB āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻ—ā§‡. āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻœāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ•āĻžāĻ°ā§‡ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ•āĻžāĻ°āĻŖ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻœā§‡āĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻ¸āĻŦāĻžāĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§‡āĻ¯āĻŧāĨ¤

āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ 3- āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ‡āĻ•ā§‡āĻ˛ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻ•āĻŋāĻ¨āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•ā§‹āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€āĻ°āĻž āĻœā§‡āĻ¨ā§‡āĻļā§āĻ¨ā§‡ āĻŦāĻŋāĻ¯āĻŧāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻŋā§ŽāĻœāĻž āĻ–āĻžāĻ¨ (āĻ“āĻš, 90 āĻāĻ° āĻĻāĻļāĻ•ā§‡ āĻ¸ā§‡āĻ¨ā§āĻŸ āĻĒāĻŋāĻŸāĻžāĻ°ā§āĻ¸āĻŦāĻžāĻ°ā§āĻ—ā§‡āĻ° āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻ¯āĻŧ)āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ, āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ (āĻ­āĻžāĻ˛, āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯)āĨ¤
āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸāĻ¸, āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻŽā§āĻĒāĻ¸āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸāĻ¸:
1. āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ¯āĻž āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡āĨ¤ āĻ¨āĻŋāĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤
2. āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§‹āĻ•āĻžāĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¤āĻžāĻ°āĻž āĻĻāĻ°āĻ•āĻžāĻ°ā§€āĨ¤
3. āĻ•āĻ°ā§āĻŽāĻ°āĻ¤ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ•āĻ°āĻž āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤
āĻ•ā§āĻˇāĻ¤ āĻāĻŦāĻ‚ āĻŦāĻžāĻ§āĻž:
1. āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€ āĻāĻ•āĻœāĻ¨ āĻĒā§āĻ°āĻ•ā§ŒāĻļāĻ˛ā§€ āĻ¨āĻ¯āĻŧ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ…āĻ¨ā§āĻ¯ āĻ•āĻžāĻ°ā§‹ āĻĒāĻŖā§āĻ¯ā§‡āĻ° āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻŦāĻž āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĨ¤
2. āĻ—ā§āĻ°āĻžāĻšāĻ•āĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ•ā§‡āĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻž āĻ¸ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦā§āĻāĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ‚ āĻ¤āĻžāĻ° āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡ āĻŦāĻ›āĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻžāĻœā§‡āĻŸ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¸ā§‡āĻ—ā§āĻ˛ā§‹. āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻĒāĻ°āĻŋāĻļā§‹āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ†āĻŦāĻžāĻ° āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻ° āĻ—ā§āĻ°āĻžāĻšāĻ• āĻ•ā§ƒāĻĒāĻŖāĨ¤ āĻāĻŸāĻžāĻ‡ āĻāĻ‡ āĻœā§€āĻŦāĻ¨ā§‡āĻ° āĻ†āĻĻāĻ°ā§āĻļāĨ¤

āĻ•āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, Chernyshevsky? āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻļā§āĻ¨ āĻ–ā§āĻŦ āĻĒā§āĻ°āĻžāĻ¸āĻ™ā§āĻ—āĻŋāĻ•. (āĻ¸āĻ™ā§āĻ—ā§‡)

āĻāĻ‡ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŦāĻ‚ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸā§ āĻ­āĻŋāĻ¨ā§āĻ¨āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ - āĻ†āĻ¸ā§āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋāĨ¤
PostgreSQL āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 1 - āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚
āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¨āĻ¯āĻŧ, āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻļāĻŦā§āĻĻā§‡āĻ° āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…āĻ°ā§āĻĨā§‡, āĻāĻŸāĻŋ āĻ–ā§āĻŦ āĻœā§‹āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ­āĻŋāĻŽāĻžāĻ¨ā§€, āĻ¤āĻŦā§‡ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ•ā§‹āĻ¨āĻ“āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ˜āĻŸāĻ¨āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°āĻ“ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ–ā§āĻāĻœā§‡ āĻ¨āĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ - "āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¯āĻžāĻ¨, āĻ†āĻŽāĻŋ āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻœāĻžāĻ¨āĻŋ āĻ¨āĻž, āĻāĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“, āĻ†āĻŽāĻŋ āĻ•ā§€ āĻœāĻžāĻ¨āĻŋ āĻ¨āĻžāĨ¤"

āĻāĻ‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ‚ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ•āĻŋ:

āĻĒā§‡āĻļāĻžāĻĻāĻžāĻ°āĻ°āĻž:
1. āĻāĻŸāĻž āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ. āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻ§ā§āĻ°ā§āĻŦāĻ• "āĻ¸āĻ™ā§āĻ•ā§āĻšāĻŋāĻ¤ āĻĄā§‡āĻŸāĻžāĻĢāĻžāĻ‡āĻ˛, āĻŸā§‡āĻŦāĻŋāĻ˛āĻ¸ā§āĻĒā§‡āĻ¸ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ" āĻāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ†āĻ°āĻ“ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧāĨ¤
2. āĻāĻ—ā§āĻ˛āĻŋ āĻšāĻ˛ āĻ¨āĻ¤ā§āĻ¨ āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻ•āĻžāĻļāĨ¤ āĻ¯āĻž āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡, āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻŦāĻž āĻĒāĻ°ā§‡, āĻ­āĻžāĻ˛ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯ āĻœāĻŋāĻžā§āĻœāĻžāĻ°āĻŦā§āĻ°ā§‡āĻĄ āĻāĻŦāĻ‚ āĻĄā§‹āĻ¨āĻžāĻŸ āĻĻā§‡āĻŦā§‡āĨ¤
āĻ•āĻ¨āĻ¸:
1. āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻžāĻœ āĻ•āĻ°.
2. āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒā§‡āĻ° āĻ…āĻ°ā§āĻĨ āĻāĻŦāĻ‚ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ­āĻ™ā§āĻ—āĻŋ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤
3. āĻ•āĻŋāĻ›ā§ āĻ¤ā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ•āĻžāĻ°āĻŖ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ•āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŽā§āĻĒāĻĻ - āĻ¸āĻŽāĻ¯āĻŧ - āĻŽāĻšāĻžāĻŦāĻŋāĻļā§āĻŦ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§€āĻŽāĻŋāĻ¤āĨ¤
4. āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ–āĻžāĻ°āĻžāĻĒ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ…āĻĒā§āĻ°ā§€āĻ¤āĻŋāĻ•āĻ° - āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "āĻāĻ•āĻŸāĻŋ āĻ‡āĻāĻĻā§āĻ° āĻ¨āĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻ™ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻœāĻžāĻ¨āĻž āĻ›ā§‹āĻŸ āĻĒā§āĻ°āĻžāĻŖā§€" āĻāĻ° āĻŽāĻ¤ā§‹ āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻŦā§‡āĻ°āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ¸āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻā§āĻāĻ•āĻŋ āĻ¨āĻž āĻļā§āĻ¯āĻžāĻŽā§āĻĒā§‡āĻ¨ āĻĒāĻžāĻ¨ āĻ¨āĻž.
āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻŽāĻœāĻž āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ.

āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ§āĻžāĻ°āĻŖāĻž - āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤

PostgreSQL āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 1 - āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚
(āĻ†āĻ°ā§āĻŸāĻŋāĻ•ā§‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻŋāĻ¤ā§āĻ° ÂĢPostgreSQL āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻļā§āĻ˛ā§‡āĻˇāĻŖ")

āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž:

  • āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ PostgreSQL āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ "pg_stat_statements" āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡āĨ¤
  • āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ pg_stat_statements āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻāĻŦāĻ‚ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ
  • āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻšā§‹āĻ¸ā§āĻŸā§‡, āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻŸāĻŋāĻ•āĻŋāĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ˜āĻŸāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯āĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ¸ā§‡āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛

āĻļā§āĻ°ā§āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¸āĻ°āĻ˛ā§€āĻ•ā§ƒāĻ¤ ERD, āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ•ā§€ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛:
PostgreSQL āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 1 - āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚
āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖāĻļā§‡āĻˇāĻŦāĻŋāĻ¨ā§āĻĻā§ - āĻšā§‹āĻ¸ā§āĻŸ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻŦāĻŋāĻ¨ā§āĻĻā§
āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻœ - āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ
pg_stat_history - āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° pg_stat_statements āĻĻā§ƒāĻļā§āĻ¯ā§‡āĻ° āĻ…āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ• āĻŸā§‡āĻŦāĻŋāĻ˛
metric_glossary - āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ…āĻ­āĻŋāĻ§āĻžāĻ¨
metric_config - āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨
āĻ›āĻ¨ā§āĻĻā§‹āĻŽāĻ¯āĻŧ - āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ• āĻ¯āĻž āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡
āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•_āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ°_āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ - āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻžāĻ° āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸
log_query - AWS āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž PostgreSQL āĻ˛āĻ— āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻĒāĻžāĻ°ā§āĻ¸āĻĄ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛
āĻŦā§‡āĻ¸āĻ˛āĻžāĻ‡āĻ¨ - āĻŦā§‡āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ā§‡āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ
āĻšā§‡āĻ•ā§āĻĒāĻ‡āĻŖā§āĻŸ - āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨
āĻšā§‡āĻ•āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ_āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž_āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ - āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻžāĻ¸ āĻšā§‡āĻ• āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸
pg_stat_db_queries - āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛
āĻ•āĻžāĻ°ā§āĻ¯ āĻŦāĻŋāĻŦāĻ°āĻŖ — āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒ āĻ˛āĻ— āĻ¸ā§‡āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛
trap_oid - āĻĢāĻžāĻāĻĻ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛

āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ 1 - āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻĒāĻžāĻ¨

āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨āĻ—āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ pg_stat_history
pg_stat_history āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ—āĻ āĻ¨

                                          āĻŸā§‡āĻŦāĻŋāĻ˛ "public.pg_stat_history" āĻ•āĻ˛āĻžāĻŽ | āĻĒā§āĻ°āĻ•āĻžāĻ° | āĻ¸āĻ‚āĻļā§‹āĻ§āĻ•--------------------------------------------------------------- -------------------------------- āĻ†āĻ‡āĻĄāĻŋ | āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž | āĻ¨āĻžāĻ˛ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻ¨ā§‡āĻ•ā§āĻ¸āĻŸāĻ­āĻžāĻ˛ āĻ¨āĻ¯āĻŧ('pg_stat_history_id_seq'::regclass) snapshot_timestamp | āĻŸāĻžāĻ‡āĻŽāĻœā§‹āĻ¨ āĻ›āĻžāĻĄāĻŧāĻž āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒ | database_id | āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž | dbid | oid | userid | oid | queryid | bigint | āĻĒā§āĻ°āĻļā§āĻ¨ | āĻĒāĻžāĻ ā§āĻ¯ | āĻ•āĻ˛ | bigint | āĻŽā§‹āĻŸ_āĻ¸āĻŽāĻ¯āĻŧ | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | āĻŽāĻŋāĻ¨āĻŋāĻŸ_āĻ¸āĻŽāĻ¯āĻŧ | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš_āĻ¸āĻŽāĻ¯āĻŧ | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | āĻŽāĻžāĻ¨ā§‡_āĻ¸āĻŽāĻ¯āĻŧ | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | stddev_time | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | āĻ¸āĻžāĻ°āĻŋ | bigint | shared_blks_hit | bigint | shared_blks_read | bigint | shared_blks_dirtied | bigint | shared_blks_written | bigint | local_blks_hit | bigint | local_blks_read | bigint | local_blks_dirtied | bigint | local_blks_written | bigint | temp_blks_read | bigint | temp_blks_written | bigint | blk_read_time | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | blk_write_time | āĻĻā§āĻŦāĻŋāĻ—ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻ­ā§āĻ˛āĻ¤āĻž | āĻŦā§‡āĻ¸āĻ˛āĻžāĻ‡āĻ¨_āĻ†āĻ‡āĻĄāĻŋ | āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž | āĻ¸ā§‚āĻšā§€āĻ—ā§āĻ˛āĻŋ: "pg_stat_history_pkey" āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ•ā§€, btree (id) "database_idx" btree (database_id) "queryid_idx" btree (queryid) "snapshot_timestamp_idx" btree (snapshot_timestamp) "āĻŦāĻŋāĻĻā§‡āĻļā§€-āĻ•ā§€: IG_FDASEKEYS" (āĻ†āĻ‡āĻœāĻŋ-āĻ†āĻ‡āĻĄāĻŋ) āĻ•āĻ¨āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻ†āĻ‡āĻĄāĻŋ) āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ (āĻ†āĻ‡āĻĄāĻŋ ) āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•ā§āĻ¯āĻžāĻ¸āĻ•ā§‡āĻĄā§‡

āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨, āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻ­āĻŋāĻ‰ āĻĄā§‡āĻŸāĻž pg_stat_statements āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡.

āĻāĻ‡ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ–ā§āĻŦāĻ‡ āĻ¸āĻšāĻœāĨ¤

pg_stat_history āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ˜āĻ¨ā§āĻŸāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžā§āĻšāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ˜āĻ¨ā§āĻŸāĻžāĻ° āĻļā§āĻ°ā§āĻ¤ā§‡, āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ pg_stat_statements āĻ¸āĻ™ā§āĻ—ā§‡ āĻ°āĻŋāĻ¸ā§‡āĻŸ āĻ•āĻ°ā§āĻ¨ pg_stat_statements_reset().
āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯: 1 āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻŦā§‡āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛ā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
pg_stat_history āĻ¸āĻžāĻ°āĻŖāĻŋ āĻĒāĻĒā§āĻ˛ā§‡āĻŸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

--pg_stat_history.sql
CREATE OR REPLACE FUNCTION pg_stat_history( ) RETURNS boolean AS $$
DECLARE
  endpoint_rec record ;
  database_rec record ;
  pg_stat_snapshot record ;
  current_snapshot_timestamp timestamp without time zone;
BEGIN
  current_snapshot_timestamp = date_trunc('minute',now());  
  
  FOR endpoint_rec IN SELECT * FROM endpoint 
  LOOP
    FOR database_rec IN SELECT * FROM database WHERE endpoint_id = endpoint_rec.id 
	  LOOP
	    
		RAISE NOTICE 'NEW SHAPSHOT IS CREATING';
		
		--Connect to the target DB	  
	    EXECUTE 'SELECT dblink_connect(''LINK1'',''host='||endpoint_rec.host||' dbname='||database_rec.name||' user=USER password=PASSWORD '')';
 
        RAISE NOTICE 'host % and dbname % ',endpoint_rec.host,database_rec.name;
		RAISE NOTICE 'Creating snapshot of pg_stat_statements for database %',database_rec.name;
		
		SELECT 
	      *
		INTO 
		  pg_stat_snapshot
	    FROM dblink('LINK1',
	      'SELECT 
	       dbid , SUM(calls),SUM(total_time),SUM(rows) ,SUM(shared_blks_hit) ,SUM(shared_blks_read) ,SUM(shared_blks_dirtied) ,SUM(shared_blks_written) , 
           SUM(local_blks_hit) , SUM(local_blks_read) , SUM(local_blks_dirtied) , SUM(local_blks_written) , SUM(temp_blks_read) , SUM(temp_blks_written) , SUM(blk_read_time) , SUM(blk_write_time)
	       FROM pg_stat_statements WHERE dbid=(SELECT oid from pg_database where datname=current_database() ) 
		   GROUP BY dbid
  	      '
	               )
	      AS t
	       ( dbid oid , calls bigint , 
  	         total_time double precision , 
	         rows bigint , shared_blks_hit bigint , shared_blks_read bigint ,shared_blks_dirtied bigint ,shared_blks_written	 bigint ,
             local_blks_hit	 bigint ,local_blks_read bigint , local_blks_dirtied bigint ,local_blks_written bigint ,
             temp_blks_read	 bigint ,temp_blks_written bigint ,
             blk_read_time double precision , blk_write_time double precision	  
	       );
		 
		INSERT INTO pg_stat_history
          ( 
		    snapshot_timestamp  ,database_id  ,
			dbid , calls  ,total_time ,
            rows ,shared_blks_hit  ,shared_blks_read  ,shared_blks_dirtied  ,shared_blks_written ,local_blks_hit , 	 	
            local_blks_read,local_blks_dirtied,local_blks_written,temp_blks_read,temp_blks_written, 	
            blk_read_time, blk_write_time 
		  )		  
	    VALUES
	      (
	       current_snapshot_timestamp ,
		   database_rec.id ,
	       pg_stat_snapshot.dbid ,pg_stat_snapshot.calls,
	       pg_stat_snapshot.total_time,
	       pg_stat_snapshot.rows ,pg_stat_snapshot.shared_blks_hit ,pg_stat_snapshot.shared_blks_read ,pg_stat_snapshot.shared_blks_dirtied ,pg_stat_snapshot.shared_blks_written , 
           pg_stat_snapshot.local_blks_hit , pg_stat_snapshot.local_blks_read , pg_stat_snapshot.local_blks_dirtied , pg_stat_snapshot.local_blks_written , 
	       pg_stat_snapshot.temp_blks_read , pg_stat_snapshot.temp_blks_written , pg_stat_snapshot.blk_read_time , pg_stat_snapshot.blk_write_time 	   
	      );		   
		  
        RAISE NOTICE 'Creating snapshot of pg_stat_statements for queries with min_time more than 1000ms';
	
        FOR pg_stat_snapshot IN
          --All queries with max_time greater than 1000 ms
	      SELECT 
	        *
	      FROM dblink('LINK1',
	        'SELECT 
	         dbid , userid ,queryid,query,calls,total_time,min_time ,max_time,mean_time, stddev_time ,rows ,shared_blks_hit ,
			 shared_blks_read ,shared_blks_dirtied ,shared_blks_written , 
             local_blks_hit , local_blks_read , local_blks_dirtied , 
			 local_blks_written , temp_blks_read , temp_blks_written , blk_read_time , 
			 blk_write_time
	         FROM pg_stat_statements 
			 WHERE dbid=(SELECT oid from pg_database where datname=current_database() AND min_time >= 1000 ) 
  	        '

	                  )
	        AS t
	         ( dbid oid , userid oid , queryid bigint ,query text , calls bigint , 
  	           total_time double precision ,min_time double precision	 ,max_time double precision	 , mean_time double precision	 ,  stddev_time double precision	 , 
	           rows bigint , shared_blks_hit bigint , shared_blks_read bigint ,shared_blks_dirtied bigint ,shared_blks_written	 bigint ,
               local_blks_hit	 bigint ,local_blks_read bigint , local_blks_dirtied bigint ,local_blks_written bigint ,
               temp_blks_read	 bigint ,temp_blks_written bigint ,
               blk_read_time double precision , blk_write_time double precision	  
	         )
	    LOOP
		  INSERT INTO pg_stat_history
          ( 
		    snapshot_timestamp  ,database_id  ,
			dbid ,userid  , queryid  , query  , calls  ,total_time ,min_time ,max_time ,mean_time ,stddev_time ,
            rows ,shared_blks_hit  ,shared_blks_read  ,shared_blks_dirtied  ,shared_blks_written ,local_blks_hit , 	 	
            local_blks_read,local_blks_dirtied,local_blks_written,temp_blks_read,temp_blks_written, 	
            blk_read_time, blk_write_time 
		  )		  
	      VALUES
	      (
	       current_snapshot_timestamp ,
		   database_rec.id ,
	       pg_stat_snapshot.dbid ,pg_stat_snapshot.userid ,pg_stat_snapshot.queryid,pg_stat_snapshot.query,pg_stat_snapshot.calls,
	       pg_stat_snapshot.total_time,pg_stat_snapshot.min_time ,pg_stat_snapshot.max_time,pg_stat_snapshot.mean_time, pg_stat_snapshot.stddev_time ,
	       pg_stat_snapshot.rows ,pg_stat_snapshot.shared_blks_hit ,pg_stat_snapshot.shared_blks_read ,pg_stat_snapshot.shared_blks_dirtied ,pg_stat_snapshot.shared_blks_written , 
           pg_stat_snapshot.local_blks_hit , pg_stat_snapshot.local_blks_read , pg_stat_snapshot.local_blks_dirtied , pg_stat_snapshot.local_blks_written , 
	       pg_stat_snapshot.temp_blks_read , pg_stat_snapshot.temp_blks_written , pg_stat_snapshot.blk_read_time , pg_stat_snapshot.blk_write_time 	   
	      );
		  
        END LOOP;

        PERFORM dblink_disconnect('LINK1');  
				
	  END LOOP ;--FOR database_rec IN SELECT * FROM database WHERE endpoint_id = endpoint_rec.id 
    
  END LOOP;

RETURN TRUE;  
END
$$ LANGUAGE plpgsql;

āĻĢāĻ˛ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§‡ pg_stat_history āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻĨāĻžāĻ•āĻŦā§‡ pg_stat_statements āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸āĨ¤

āĻ†āĻ¸āĻ˛ā§‡ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚

āĻ¸āĻšāĻœ āĻĒā§āĻ°āĻļā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻŦā§‡āĻļ āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻŦāĻ‚ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻĻāĻ¨ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻĄā§‡āĻŸāĻž

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  database_id , 
  SUM(calls) AS calls ,SUM(total_time)  AS total_time ,
  SUM(rows) AS rows , SUM(shared_blks_hit)  AS shared_blks_hit,
  SUM(shared_blks_read) AS shared_blks_read ,
  SUM(shared_blks_dirtied) AS shared_blks_dirtied,
  SUM(shared_blks_written) AS shared_blks_written , 
  SUM(local_blks_hit) AS local_blks_hit , 
  SUM(local_blks_read) AS local_blks_read , 
  SUM(local_blks_dirtied) AS local_blks_dirtied , 
  SUM(local_blks_written)  AS local_blks_written,
  SUM(temp_blks_read) AS temp_blks_read, 
  SUM(temp_blks_written) temp_blks_written , 
  SUM(blk_read_time) AS blk_read_time , 
  SUM(blk_write_time) AS blk_write_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NULL AND
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
GROUP BY database_id ;

āĻĄāĻŋāĻŦāĻŋ āĻ¸āĻŽāĻ¯āĻŧ

to_char(āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ '1 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄ' * pg_total_stat_history_rec.total_time, 'HH24:MI:SS.MS')

I/O āĻ¸āĻŽāĻ¯āĻŧ

to_char(āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ '1 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄ' * ( pg_total_stat_history_rec.blk_read_time + pg_total_stat_history_rec.blk_write_time ), 'HH24:MI:SS.MS')

āĻŽā§‹āĻŸ_āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ TOP10 SQL

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  queryid , 
  SUM(calls) AS calls ,
  SUM(total_time)  AS total_time  	
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT 
GROUP BY queryid 
ORDER BY 3 DESC 
LIMIT 10
-------------------------------------------------- -------------------------------------------------- | āĻŽā§‹āĻŸ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§‡āĻ°āĻž 10 SQL | #| queryid| āĻ•āĻ˛ | āĻ•āĻ˛ %| āĻŽā§‹āĻŸ_āĻ¸āĻŽāĻ¯āĻŧ (āĻāĻŽāĻāĻ¸) | dbtime % +------+------------+------------+----------+------ --------------------+------------ | 1| 821760255| 2| .00001|00:03:23.141( 203141.681 ms.)| 5.42 | 2| 4152624390| 2| .00001|00:03:13.929( 193929.215 ms.)| 5.17 | 3| 1484454471| 4| .00001|00:02:09.129( 129129.057 ms.)| 3.44 | 4| 655729273| 1| .00000|00:02:01.869( 121869.981 ms.)| 3.25 | 5| 2460318461| 1| .00000|00:01:33.113( 93113.835 ms.)| 2.48 | 6| 2194493487| 4| .00001|00:00:17.377( 17377.868 ms.)| .46 | 7| 1053044345| 1| .00000|00:00:06.156( 6156.352 ms.)| .16 | 8| 3644780286| 1| .00000|00:00:01.063( 1063.830 ms.)| .03

āĻŽā§‹āĻŸ I/O āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ TOP10 SQL

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  queryid , 
  SUM(calls) AS calls ,
  SUM(blk_read_time + blk_write_time)  AS io_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
GROUP BY  queryid 
ORDER BY 3 DESC 
LIMIT 10
-------------------------------------------------- --------------------------------------------------- | āĻŽā§‹āĻŸ I/O āĻ¸āĻŽāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§‡āĻ°āĻž 10 SQL | #| queryid| āĻ•āĻ˛ | āĻ•āĻ˛ %| I/O āĻ¸āĻŽāĻ¯āĻŧ (ms)|db I/O āĻ¸āĻŽāĻ¯āĻŧ % +------+------------+----------+------ ----------------------------------------------------------- -- | 1| 4152624390| 2| .00001|00:08:31.616( 511616.592 ms.)| āĻœā§āĻ¨ 31.06 | 2| 821760255| 2| .00001|00:08:27.099( 507099.036 ms.)| 30.78 | 3| 655729273| 1| .00000|00:05:02.209( 302209.137 ms.)| 18.35 | 4| 2460318461| 1| .00000|00:04:05.981( 245981.117 ms.)| 14.93 | 5| 1484454471| 4| .00001|00:00:39.144( 39144.221 ms.)| 2.38 | 6| 2194493487| 4| .00001|00:00:18.182( 18182.816 ms.)| 1.10 | 7| 1053044345| 1| .00000|00:00:16.611(16611.722 ms.)| 1.01 | 8| 3644780286| 1| .00000|00:00:00.436( 436.205 ms.)| .03

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš 10 āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  id AS snapshotid , 
  queryid , 
  snapshot_timestamp ,  
  max_time 
FROM 
  pg_stat_history 
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
ORDER BY 4 DESC 
LIMIT 10

-------------------------------------------------- -------------------------------------------------- | āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ¸āĻŽāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž āĻļā§€āĻ°ā§āĻˇ 10 SQL | #| āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸ| āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸāĻ†āĻ‡āĻĄāĻŋ| queryid| max_time (ms) +------+-------------------+------------+--------- -------------------------------------------- | 1| 05.04.2019/01/03 4169:655729273| 00| 02| 01.869:121869.981:2( 04.04.2019 ms.) | 17| 00/4153/821760255 00:01| 41.570| 101570.841| 3:04.04.2019:16( 00 ms.) | 4146| 821760255/00/01 41.570:101570.841| 4| 04.04.2019| 16:00:4144( 4152624390 ms.) | 00| 01/36.964/96964.607 5:04.04.2019| 17| 00| 4151:4152624390:00( 01 ms.) | 36.964| 96964.607/6/05.04.2019 10:00| 4188| 1484454471| 00:01:33.452( 93452.150 ms.) | 7| 04.04.2019/17/00 4150:2460318461 | 00| 01| 33.113:93113.835:8( 04.04.2019 ms.) | 15| 00/4140/1484454471 00:00| 11.892| 11892.302| 9:04.04.2019:16( 00 ms.) | 4145| 1484454471/00/00 11.892:11892.302| 10| 04.04.2019| 17:00:4152(1484454471 ms.) | 00| 00/11.892/11892.302 XNUMX:XNUMX| XNUMX| XNUMX| XNUMX:XNUMX:XNUMX(XNUMX ms.) | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX| XNUMX| XNUMX| XNUMX:XNUMX:XNUMX (XNUMX ms.)

SHARED āĻŦāĻžāĻĢāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž TOP10 SQL āĻ°āĻŋāĻĄ/āĻ°āĻžāĻ‡āĻŸ

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  id AS snapshotid , 
  queryid ,
  snapshot_timestamp , 
  shared_blks_read , 
  shared_blks_written 
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT AND
  ( shared_blks_read > 0 OR shared_blks_written > 0 )
ORDER BY 4 DESC  , 5 DESC 
LIMIT 10
-------------------------------------------------- -------------------------------------------------- | āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻž āĻŦāĻžāĻĢāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻļā§€āĻ°ā§āĻˇ 10 SQL āĻ°āĻŋāĻĄ/āĻ°āĻžāĻ‡āĻŸ | #| āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸ| āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸāĻ†āĻ‡āĻĄāĻŋ| queryid| āĻ­āĻžāĻ— āĻ•āĻ°āĻž āĻŦā§āĻ˛āĻ• āĻĒāĻĄāĻŧāĻž | āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŦā§āĻ˛āĻ• āĻ˛āĻŋāĻ–āĻ¤ā§‡ +------------------------------------- ------------------------- +---------------------- | 1| 04.04.2019/17/00 4153:821760255| 797308| 0| 2| 04.04.2019 | 16| 00/4146/821760255 797308:0| 3| 05.04.2019| 01| 03 | 4169| 655729273/797158/0 4:04.04.2019| 16| 00| 4144| 4152624390 | 756514| 0/5/04.04.2019 17:00| 4151| 4152624390| 756514| 0 | 6| 04.04.2019/17/00 4150:2460318461| 734117| 0| 7| 04.04.2019 | 17| 00/4155/3644780286 52973:0| 8| 05.04.2019| 01| 03 | 4168| 1053044345/52818/0 9:04.04.2019| 15| 00| 4141| 2194493487 | 52813| 0/10/04.04.2019 16:00| 4147| 2194493487| 52813| 0 | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX| XNUMX| XNUMX| XNUMX| XNUMX | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX| XNUMX| XNUMX| XNUMX| XNUMX -------------------------------------------------- --------------------------------------------------

āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻŦāĻŋāĻ¤āĻ°āĻŖā§‡āĻ° āĻšāĻŋāĻ¸ā§āĻŸā§‹āĻ—ā§āĻ°āĻžāĻŽ

āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

SELECT  
  MIN(max_time) AS hist_min  , 
  MAX(max_time) AS hist_max , 
  (( MAX(max_time) - MIN(min_time) ) / hist_columns ) as hist_width
FROM 
  pg_stat_history 
WHERE 
  queryid IS NOT NULL AND
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT ;

SELECT 
  SUM(calls) AS calls
FROM 
  pg_stat_history 
WHERE 
  queryid IS NOT NULL AND
  database_id =DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT AND 
  ( max_time >= hist_current_min AND  max_time < hist_current_max ) ;
|------------------------------------------------ ---------------------------------------- | MAX_TIME āĻšāĻŋāĻ¸ā§āĻŸā§‹āĻ—ā§āĻ°āĻžāĻŽ | āĻŽā§‹āĻŸ āĻ•āĻ˛: 33851920 | āĻŽāĻŋāĻ¨āĻŋāĻŸ āĻ¸āĻŽāĻ¯āĻŧ : 00:00:01.063 | āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ¸āĻŽāĻ¯āĻŧ : 00:02:01.869 ----------------------------------------------------- ----------------------------------------- | āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛| āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛| āĻ•āĻ˛ āĻ•āĻ°ā§‡ +---------------------------------- ---------------------+------------ | 00:00:01.063( 1063.830 ms.) | 00:00:13.144( 13144.445 ms.) | 9 | 00:00:13.144( 13144.445 ms.) | 00:00:25.225( 25225.060 ms.) | 0 | 00:00:25.225( 25225.060 ms.) | 00:00:37.305( 37305.675 ms.) | 0 | 00:00:37.305( 37305.675 ms.) | 00:00:49.386( 49386.290 ms.) | 0 | 00:00:49.386( 49386.290 ms.) | 00:01:01.466( 61466.906 ms.) | 0 | 00:01:01.466( 61466.906 ms.) | 00:01:13.547( 73547.521 ms.) | 0 | 00:01:13.547( 73547.521 ms.) | 00:01:25.628( 85628.136 ms.) | 0 | 00:01:25.628( 85628.136 ms.) | 00:01:37.708( 97708.751 ms.) | 4 | 00:01:37.708( 97708.751 ms.) | 00:01:49.789( 109789.366 ms.) | 2 | 00:01:49.789( 109789.366 ms.) | 00:02:01.869( 121869.981 ms.) | 0

āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻĻā§āĻŦāĻžāĻ°āĻž TOP10 āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸ

āĻ…āĻ¨ā§āĻ°ā§‹āĻ§

--pg_qps.sql
--Calculate Query Per Second 
CREATE OR REPLACE FUNCTION pg_qps( pg_stat_history_id integer ) RETURNS double precision AS $$
DECLARE
 pg_stat_history_rec record ;
 prev_pg_stat_history_id integer ;
 prev_pg_stat_history_rec record;
 total_seconds double precision ;
 result double precision;
BEGIN 
  result = 0 ;
  
  SELECT *
  INTO pg_stat_history_rec
  FROM 
    pg_stat_history
  WHERE id = pg_stat_history_id ;

  IF pg_stat_history_rec.snapshot_timestamp IS NULL 
  THEN
    RAISE EXCEPTION 'ERROR - Not found pg_stat_history for id = %',pg_stat_history_id;
  END IF ;  
  
 --RAISE NOTICE 'pg_stat_history_id = % , snapshot_timestamp = %', pg_stat_history_id , 
 pg_stat_history_rec.snapshot_timestamp ;
  
  SELECT 
    MAX(id)   
  INTO
    prev_pg_stat_history_id
  FROM
    pg_stat_history
  WHERE 
    database_id = pg_stat_history_rec.database_id AND
	queryid IS NULL AND
	id < pg_stat_history_rec.id ;

  IF prev_pg_stat_history_id IS NULL 
  THEN
    RAISE NOTICE 'Not found previous pg_stat_history shapshot for id = %',pg_stat_history_id;
	RETURN NULL ;
  END IF;
  
  SELECT *
  INTO prev_pg_stat_history_rec
  FROM 
    pg_stat_history
  WHERE id = prev_pg_stat_history_id ;
  
  --RAISE NOTICE 'prev_pg_stat_history_id = % , prev_snapshot_timestamp = %', prev_pg_stat_history_id , prev_pg_stat_history_rec.snapshot_timestamp ;    

  total_seconds = extract(epoch from ( pg_stat_history_rec.snapshot_timestamp - prev_pg_stat_history_rec.snapshot_timestamp ));
  
  --RAISE NOTICE 'total_seconds = % ', total_seconds ;    
  
  --RAISE NOTICE 'calls = % ', pg_stat_history_rec.calls ;      
  
  IF total_seconds > 0 
  THEN
    result = pg_stat_history_rec.calls / total_seconds ;
  ELSE
   result = 0 ; 
  END IF;
   
 RETURN result ;
END
$$ LANGUAGE plpgsql;


SELECT 
  id , 
  snapshot_timestamp ,
  calls , 	
  total_time , 
  ( select pg_qps( id )) AS QPS ,
  blk_read_time ,
  blk_write_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT AND
  ( select pg_qps( id )) IS NOT NULL 
ORDER BY 5 DESC 
LIMIT 10
|------------------------------------------------ ---------------------------------------- | QueryPerSeconds āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ†āĻĻā§‡āĻļāĻ•ā§ƒāĻ¤ āĻ¸ā§‡āĻ°āĻž 10 āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸ --------------------------------------------------------- ------------------------------------------------------------------------- -------------------------------------------------------- | #| āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸ| āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻŸāĻ†āĻ‡āĻĄāĻŋ| āĻ•āĻ˛ | āĻŽā§‹āĻŸ āĻĄāĻŋāĻŦāĻŋāĻŸāĻžāĻ‡āĻŽ| QPS | I/O āĻ¸āĻŽāĻ¯āĻŧ | I/O āĻ¸āĻŽāĻ¯āĻŧ % +------+---------------------------------- ------------------------------------------- -------------------------------------- +------------ | 1| 04.04.2019/20/04 4161:5758631| 00| 06| 30.513:390513.926:1573.396( 00 ms.)| 00| 01.470:1470.110:376(2 ms.)| .04.04.2019 | 17| 00/4149/3529197 00:11| 48.830| 708830.618| 980.332:00:12( 47.834 ms.)| 767834.052| 108.324:3:04.04.2019( 16 ms.)| 00 | 4143| 3525360/00/10 13.492:613492.351| 979.267| 00| 08:41.396:521396.555( 84.988 ms.)| 4| 04.04.2019:21:03( 4163 ms.)| 2781536 | 00| 03/06.470/186470.979 785.745:00| 00| 00.249| 249.865:134:5( 04.04.2019 ms.)| 19| 03:4159:2890362( 00 ms.)| .03 | 16.784| 196784.755/776.979/00 00:01.441| 1441.386| 732| 6:04.04.2019:14( 00 ms.)| 4137| 2397326:00:04( 43.033 ms.)| .283033.854 | 665.924| 00/00/00.024 24.505:009 | 7| 04.04.2019| 15:00:4139( 2394416 ms.)| 00| 04:51.435:291435.010(665.116 ms.)| .00 | 00| 12.025/12025.895/4.126 8:04.04.2019| 13| 00| 4135:2373043:00( 04 ms.)| 26.791| 266791.988:659.179:00( 00 ms.)| 00.064 | 64.261| 024/9/05.04.2019 01:03| 4167| 4387191| 00:06:51.380( 411380.293 ms.)| 609.332| 00:05:18.847(318847.407 ms.)| .77.507 | 10| 04.04.2019/18/01 4157:1145596| 00| 01| 19.217:79217.372:313.004( 00 ms.)| 00| 01.319:1319.676:1.666( XNUMX ms.)| XNUMX | XNUMX| XNUMX/XNUMX/XNUMX XNUMX:XNUMX| XNUMX| XNUMX| XNUMX:XNUMX:XNUMX( XNUMX ms.)| XNUMX| XNUMX:XNUMX:XNUMX( XNUMX ms.)| XNUMX

QueryPerSeconds āĻāĻŦāĻ‚ I/O āĻŸāĻžāĻ‡āĻŽ āĻ¸āĻš āĻ˜āĻ¨ā§āĻŸāĻžāĻ¯āĻŧ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  id , 
  snapshot_timestamp ,
  calls , 	
  total_time , 
  ( select pg_qps( id )) AS QPS ,
  blk_read_time ,
  blk_write_time
FROM 
  pg_stat_history
WHERE 
  queryid IS NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
ORDER BY 2
|-----------------------------------------------------------------------------------------------
| HOURLY EXECUTION HISTORY  WITH QueryPerSeconds and I/O Time
-----------------------------------------------------------------------------------------------------------------------------------------------
| QUERY PER SECOND HISTORY
|    #|          snapshot| snapshotID|      calls|                      total dbtime|        QPS|                          I/O time| I/O time %
+-----+------------------+-----------+-----------+----------------------------------+-----------+----------------------------------+-----------
|    1|  04.04.2019 11:00|       4131|       3747|  00:00:00.835(       835.374 ms.)|      1.041|  00:00:00.000(          .000 ms.)|       .000
|    2|  04.04.2019 12:00|       4133|    1002722|  00:01:52.419(    112419.376 ms.)|    278.534|  00:00:00.149(       149.105 ms.)|       .133
|    3|  04.04.2019 13:00|       4135|    2373043|  00:04:26.791(    266791.988 ms.)|    659.179|  00:00:00.064(        64.261 ms.)|       .024
|    4|  04.04.2019 14:00|       4137|    2397326|  00:04:43.033(    283033.854 ms.)|    665.924|  00:00:00.024(        24.505 ms.)|       .009
|    5|  04.04.2019 15:00|       4139|    2394416|  00:04:51.435(    291435.010 ms.)|    665.116|  00:00:12.025(     12025.895 ms.)|      4.126
|    6|  04.04.2019 16:00|       4143|    3525360|  00:10:13.492(    613492.351 ms.)|    979.267|  00:08:41.396(    521396.555 ms.)|     84.988
|    7|  04.04.2019 17:00|       4149|    3529197|  00:11:48.830(    708830.618 ms.)|    980.332|  00:12:47.834(    767834.052 ms.)|    108.324
|    8|  04.04.2019 18:01|       4157|    1145596|  00:01:19.217(     79217.372 ms.)|    313.004|  00:00:01.319(      1319.676 ms.)|      1.666
|    9|  04.04.2019 19:03|       4159|    2890362|  00:03:16.784(    196784.755 ms.)|    776.979|  00:00:01.441(      1441.386 ms.)|       .732
|   10|  04.04.2019 20:04|       4161|    5758631|  00:06:30.513(    390513.926 ms.)|   1573.396|  00:00:01.470(      1470.110 ms.)|       .376
|   11|  04.04.2019 21:03|       4163|    2781536|  00:03:06.470(    186470.979 ms.)|    785.745|  00:00:00.249(       249.865 ms.)|       .134
|   12|  04.04.2019 23:03|       4165|    1443155|  00:01:34.467(     94467.539 ms.)|    200.438|  00:00:00.015(        15.287 ms.)|       .016
|   13|  05.04.2019 01:03|       4167|    4387191|  00:06:51.380(    411380.293 ms.)|    609.332|  00:05:18.847(    318847.407 ms.)|     77.507
|   14|  05.04.2019 02:03|       4171|     189852|  00:00:10.989(     10989.899 ms.)|     52.737|  00:00:00.539(       539.110 ms.)|      4.906
|   15|  05.04.2019 03:01|       4173|       3627|  00:00:00.103(       103.000 ms.)|      1.042|  00:00:00.004(         4.131 ms.)|      4.010
|   16|  05.04.2019 04:00|       4175|       3627|  00:00:00.085(        85.235 ms.)|      1.025|  00:00:00.003(         3.811 ms.)|      4.471
|   17|  05.04.2019 05:00|       4177|       3747|  00:00:00.849(       849.454 ms.)|      1.041|  00:00:00.006(         6.124 ms.)|       .721
|   18|  05.04.2019 06:00|       4179|       3747|  00:00:00.849(       849.561 ms.)|      1.041|  00:00:00.000(          .051 ms.)|       .006
|   19|  05.04.2019 07:00|       4181|       3747|  00:00:00.839(       839.416 ms.)|      1.041|  00:00:00.000(          .062 ms.)|       .007
|   20|  05.04.2019 08:00|       4183|       3747|  00:00:00.846(       846.382 ms.)|      1.041|  00:00:00.000(          .007 ms.)|       .001
|   21|  05.04.2019 09:00|       4185|       3747|  00:00:00.855(       855.426 ms.)|      1.041|  00:00:00.000(          .065 ms.)|       .008
|   22|  05.04.2019 10:00|       4187|       3797|  00:01:40.150(    100150.165 ms.)|      1.055|  00:00:21.845(     21845.217 ms.)|     21.812

āĻ¸āĻŽāĻ¸ā§āĻ¤ SQL āĻāĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°ā§‡

āĻ¤āĻĻāĻ¨ā§āĻ¤

SELECT 
  queryid , 
  query 
FROM 
  pg_stat_history
WHERE 
  queryid IS NOT NULL AND 
  database_id = DATABASE_ID  AND
  snapshot_timestamp BETWEEN BEGIN_TIMEPOINT AND END_TIMEPOINT
GROUP BY queryid , query

āĻĢāĻ˛āĻžāĻĢāĻ˛

āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨, āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻ¸āĻšāĻœ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻšāĻžāĻĒ āĻāĻŦāĻ‚ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻĻāĻ°āĻ•āĻžāĻ°ā§€ āĻ¤āĻĨā§āĻ¯ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻŦāĻŋāĻƒāĻĻā§āĻ°āĻƒ:āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€āĻ¤ā§‡ queryid āĻ āĻŋāĻ• āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ āĻĒāĻžāĻŦ (āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻžāĻāĻšāĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻĻāĻ¨ āĻŦāĻžāĻĻ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ)āĨ¤

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§‡āĻ° āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨āĻ—āĻ¤ āĻĄā§‡āĻŸāĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ "āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨āĻ—āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš" āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ - "āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž"āĨ¤
PostgreSQL āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 1 - āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ—āĻ˛ā§āĻĒāĨ¤

āĻšāĻ˛āĻŦā§‡â€Ļ

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨