48.46. pg_statistic
РкаÑалоге pg_statistic Ñ
ÑаниÑÑÑ ÑÑаÑиÑÑиÑеÑÐºÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑодеÑжимом Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐапиÑи в нÑм ÑоздаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ ANALYZE, а заÑем иÑполÑзÑÑÑÑÑ Ð¿Ð»Ð°Ð½Ð¸ÑовÑиком запÑоÑов. ÐамеÑÑÑе, ÑÑо вÑе ÑÑи даннÑе по пÑиÑоде Ñвоей неÑоÑнÑе, даже еÑли пÑедполагаеÑÑÑ, ÑÑо они акÑÑалÑнÑ.
ÐбÑÑно Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑÑолбÑа, подлежаÑего анализÑ, в ÑÑом каÑалоге еÑÑÑ Ð¾Ð´Ð½Ð° запиÑÑ Ñо знаÑением stainherit = false. ÐÑли Ñ ÑаблиÑÑ Ð¸Ð¼ÐµÑÑÑÑ Ð¿Ð¾Ñомки в иеÑаÑÑ
ии наÑледованиÑ, Ñакже ÑоздаÑÑÑÑ Ð²ÑоÑÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ñ stainherit = true. ÐÑа ÑÑÑока пÑедÑÑавлÑÐµÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ ÑÑолбÑÑ Ð² деÑеве наÑледованиÑ, Ñо еÑÑÑ ÑÑаÑиÑÑÐ¸ÐºÑ Ð¿Ð¾ даннÑм, коÑоÑÑе возвÑаÑÐ¸Ñ Ð·Ð°Ð¿ÑÐ¾Ñ SELECT , Ñогда как ÑÑÑока Ñ ÑÑÐ¾Ð»Ð±ÐµÑ FROM ÑаблиÑа*stainherit = false пÑедÑÑавлÑÐµÑ ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑа SELECT .ÑÑÐ¾Ð»Ð±ÐµÑ FROM ONLY ÑаблиÑа
Ð pg_statistic Ñакже Ñ
ÑаниÑÑÑ ÑÑаÑиÑÑиÑеÑÐºÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ знаÑениÑÑ
вÑÑажений индекÑов. Ðна опиÑÑваеÑÑÑ Ñак же, как еÑли Ð±Ñ ÑÑо бÑли ÑÑолбÑÑ Ð´Ð°Ð½Ð½ÑÑ
; в ÑаÑÑноÑÑи, starelid ÑÑÑлаеÑÑÑ Ð½Ð° индекÑ. Ðднако Ð´Ð»Ñ ÑÑолбÑов, задейÑÑвÑемÑÑ
в индекÑе без вÑÑажений, дополниÑелÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ðµ добавлÑеÑÑÑ, Ñак как она повÑоÑÑла Ð±Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð´Ð»Ñ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°Ñего ÑÑолбÑа ÑаблиÑÑ. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð²Ð¾ вÑеÑ
запиÑÑÑ
Ð´Ð»Ñ Ð²ÑÑажений индекÑов stainherit = false.
Так как Ð´Ð»Ñ ÑазлиÑнÑÑ
Ñипов даннÑÑ
могÑÑ Ð±ÑÑÑ ÑмеÑÑÐ½Ñ ÑазлиÑнÑе ÑÐ¸Ð¿Ñ ÑÑаÑиÑÑики, в каÑалоге pg_statistic не делаеÑÑÑ ÐºÐ¾Ð½ÐºÑеÑнÑÑ
пÑедположений о Ñом, ÐºÐ°ÐºÐ°Ñ ÑÑаÑиÑÑика в нÑм Ñ
ÑаниÑÑÑ. ÐÑделÑнÑе ÑÑолбÑÑ Ð² pg_statistic вÑÐ´ÐµÐ»ÐµÐ½Ñ ÑолÑко Ð´Ð»Ñ ÑамÑÑ
обÑиÑ
ÑвойÑÑв (напÑимеÑ, Ð´Ð¾Ð»Ñ NULL). ÐÑÑ Ð¾ÑÑалÑное Ñ
ÑаниÑÑÑ Ð² «ÑлоÑаÑ
», пÑедÑÑавлÑÑÑиÑ
Ñобой гÑÑÐ¿Ð¿Ñ ÑвÑзаннÑÑ
ÑÑолбÑов, ÑодеÑжимое коÑоÑÑÑ
опÑеделÑеÑÑÑ ÐºÐ¾Ð´Ð¾Ð²Ñм ÑиÑлом в одном из ÑÑолбÑов ÑлоÑов. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº src/include/catalog/pg_statistic.h.
ÐаÑалог pg_statistic не должен бÑÑÑ Ð´Ð¾ÑÑÑпен на ÑÑение вÑем, Ñак как даже ÑÑаÑиÑÑиÑеÑÐºÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑодеÑжимом ÑаблиÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑÑиÑаÑÑÑÑ ÐºÐ¾Ð½ÑиденÑиалÑной. (ÐапÑимеÑ, доволÑно инÑеÑеÑÐ½Ñ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑе и макÑималÑнÑе знаÑÐµÐ½Ð¸Ñ Ð² ÑÑолбÑе заÑплаÑÑ.) ÐоÑÑÐ¾Ð¼Ñ ÑÑÑеÑÑвÑÐµÑ pg_stats â доÑÑÑпное вÑем Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¿ÑедÑÑавление на базе pg_statistic, в коÑоÑом вÑдаÑÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ ÑолÑко по Ñем ÑаблиÑам, коÑоÑÑе Ð¼Ð¾Ð¶ÐµÑ ÑиÑаÑÑ ÑекÑÑий полÑзоваÑелÑ.
ТаблиÑа 48.46. СÑолбÑÑ pg_statistic
| ÐÐ¼Ñ | Тип | СÑÑлки | ÐпиÑание |
|---|---|---|---|
starelid | oid | | ТаблиÑа (или индекÑ), к коÑоÑой пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ Ð¾Ð¿Ð¸ÑÑваемÑй ÑÑÐ¾Ð»Ð±ÐµÑ |
staattnum | int2 | | ÐÐ¾Ð¼ÐµÑ Ð¾Ð¿Ð¸ÑÑваемого ÑÑолбÑа |
stainherit | bool |  | ÐÑли true, в ÑÑаÑиÑÑике ÑÑиÑÑваÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² доÑеÑÐ½Ð¸Ñ ÑÑолбÑÐ°Ñ , а не ÑолÑко в Ñказанном оÑноÑении |
stanullfrac | float4 |  | ÐÐ¾Ð»Ñ Ð·Ð°Ð¿Ð¸Ñей, в коÑоÑÑÑ ÑÑÐ¾Ñ ÑÑÐ¾Ð»Ð±ÐµÑ ÑодеÑÐ¶Ð¸Ñ NULL |
stawidth | int4 |  | СÑедний ÑÐ°Ð·Ð¼ÐµÑ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ NULL-ÑлеменÑов, в байÑÐ°Ñ |
stadistinct | float4 |  | ЧиÑло ÑазлиÑнÑÑ
и оÑлиÑнÑÑ
Ð¾Ñ NULL знаÑений в ÑÑолбÑе. ЧиÑло болÑÑе нÑÐ»Ñ Ð¿ÑедÑÑавлÑÐµÑ ÑакÑиÑеÑкое колиÑеÑÑво ÑазлиÑнÑÑ
знаÑений. ÐÑли ÑÑо ÑиÑло менÑÑе нÑлÑ, его модÑÐ»Ñ Ð¿ÑедÑÑавлÑÐµÑ Ð¼Ð½Ð¾Ð¶Ð¸ÑÐµÐ»Ñ Ð´Ð»Ñ Ð¾Ð±Ñего колиÑеÑÑва ÑÑÑок в ÑаблиÑе; напÑимеÑ, Ð´Ð»Ñ ÑÑолбÑа, в коÑоÑом пÑимеÑно 80% знаÑений не NULL, и каждое оÑлиÑное Ð¾Ñ NULL знаÑение в ÑÑеднем повÑоÑÑеÑÑÑ Ð´Ð²Ð°Ð¶Ð´Ñ, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑедÑÑавлено знаÑение stadistinct = -0.4. ÐÐ¾Ð»Ñ Ð¾Ð·Ð½Ð°ÑаеÑ, ÑÑо колиÑеÑÑво ÑазлиÑнÑÑ
знаÑений неизвеÑÑно. |
stakind | int2 |  | Ðодовое ÑиÑло, опÑеделÑÑÑее Ñод ÑÑаÑиÑÑики, Ñ
ÑанÑÑейÑÑ Ð² N-ом «ÑлоÑе» ÑÑÑоки pg_statistic row. |
staop | oid | | ÐпеÑаÑоÑ, Ñ ÐºÐ¾ÑоÑÑм бÑла полÑÑена ÑÑаÑиÑÑика, Ñ
ÑанÑÑаÑÑÑ Ð² N-ом «ÑлоÑе». ÐапÑимеÑ, Ð´Ð»Ñ ÑлоÑа гиÑÑогÑÐ°Ð¼Ð¼Ñ ÑÑо бÑÐ´ÐµÑ Ð¾Ð¿ÐµÑаÑÐ¾Ñ <, опÑеделÑÑÑий поÑÑдок ÑоÑÑиÑовки даннÑÑ
. |
stanumbers | float4[] |  | ЧиÑÐ»ÐµÐ½Ð½Ð°Ñ ÑÑаÑиÑÑика ÑооÑвеÑÑÑвÑÑÑего Ñода Ð´Ð»Ñ N-ного «ÑлоÑа», либо NULL, еÑли Ñ ÑÑим Ñодом ÑлоÑа не ÑвÑÐ·Ð°Ð½Ñ ÑиÑловÑе знаÑÐµÐ½Ð¸Ñ |
stavalues | anyarray |  | ÐнаÑÐµÐ½Ð¸Ñ ÑÑолбÑов ÑооÑвеÑÑÑвÑÑÑего Ñода Ð´Ð»Ñ N-го «ÑлоÑа», либо NULL, еÑли Ð´Ð»Ñ ÑÑого Ñода ÑлоÑа не Ñ
ÑанÑÑÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ знаÑениÑ. ÐÑе знаÑÐµÐ½Ð¸Ñ ÑлеменÑов маÑÑива ÑакÑиÑеÑки имеÑÑ Ñип даннÑÑ
ÑÑолбÑа или ÑвÑзаннÑй Ñип, напÑимеÑ, Ñип ÑлеменÑа маÑÑива, Ñак ÑÑо опÑеделиÑÑ ÑÐ¸Ð¿Ñ ÑÑи ÑÑолбÑов более конкÑеÑно, Ñем anyarray, нелÑзÑ. |