ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ высоконагруТСнных ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 программисты часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π±ΠΎΡ€Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… записСй ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ ΠΎ простой Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ, Π° ΠΎ Π²Ρ‹Π±ΠΎΡ€Π΅ "Π³Ρ€Π°Π½ΠΈΡ†Ρ‹" состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡƒΡ‡Π΅Ρ‚Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сущности ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ срСдства языка запросов ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ для этого ΠΌΠΎΡ‰Π½Ρ‹Π΅ конструкции, извСстныС ΠΊΠ°ΠΊ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΈ срСз послСдних. Π­Ρ‚ΠΈ инструмСнты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСгистрами накоплСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Π³Π΄Π΅ хранится история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ПониманиС физичСской сути этих срСзов критичСски Π²Π°ΠΆΠ½ΠΎ для построСния ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π° сСкунды, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ часы ΠΏΡ€ΠΈ ростС объСма ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ отличия ΠΌΠ΅ΠΆΠ΄Ρƒ этими ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ, рассмотрим ΠΈΡ… влияниС Π½Π° ΠΏΠ»Π°Π½ выполнСния запроса ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ, Π² ΠΊΠ°ΠΊΠΈΡ… сцСнариях умСстно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ….

Основная Π·Π°Π΄Π°Ρ‡Π° Ρ‚Π°ΠΊΠΈΡ… срСзов β€” ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ запись для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния поля Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ. НапримСр, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ остаток Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ складС ΠΈΠ»ΠΈ послСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ статуса Π·Π°ΠΊΠ°Π·Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ это Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ группирования Π΄Π°Π½Π½Ρ‹Ρ….

ЀизичСская ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° срСзов Π² рСгистрах накоплСния

РСгистры накоплСния Π² конфигурациях 1Π‘ хранят Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. КаТдоС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ β€” это Ρ„Π°ΠΊΡ‚ измСнСния количСства ΠΈΠ»ΠΈ суммы. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ состояниС (остатки), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π½Ρ‹Π΅ двиТСния ΠΈ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ всС расходныС Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹. Однако ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ быстрый способ β€” использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† срСзов.

Когда Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ РСгистрНакоплСния.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ, систСма internally ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ срСза послСдних. Она ΠΈΡ‰Π΅Ρ‚ послСднюю запись для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСрСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ складС), которая Π±Ρ‹Π»Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запроса. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСй истории Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ Π² Π±Π°Π·Π°Ρ… с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠ΅, Π½ΠΎ ΠΎΠ½ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. НапримСр, Ссли Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ мСсяцС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для срСза ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски, ΠΈ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ срСзов доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для рСгистров накоплСния ΠΈ рСгистров свСдСний с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ "НСпСриодичСский" ΠΈΠ»ΠΈ "ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½ΠΈΠ΅ рСгистратору". Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ рСгистров Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ½Π°Ρ‡Π΅ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного указания Π² тСкстС запроса.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ физичСскоС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Если индСкс ΠΏΠΎ измСрСниям ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ построСн ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΡƒΡŽ запись, пройдя ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ индСкса, Π½Π΅ сканируя всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. ИмСнно поэтому ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ структуры индСксов рСгистра Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ связано с ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ срСзов.

Рассмотрим Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°Ρ…. ΠŸΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎ максимальной Π΄Π°Ρ‚Π΅ (MAX(ΠŸΠ΅Ρ€ΠΈΠΎΠ΄)) Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… часто приходится ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ срСза ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска, минимизируя дисковыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

πŸ“Š Какой Ρ‚ΠΈΠΏ рСгистра Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
РСгистры накоплСния (остатки)
РСгистры накоплСния (ΠΎΠ±ΠΎΡ€ΠΎΡ‚Ρ‹)
РСгистры свСдСний
РСгистры Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ

Бинтаксис ΠΈ особСнности ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π‘Π Π•Π—ΠŸΠžΠ‘Π›Π•Π”ΠΠ˜Π₯

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π‘Π Π•Π—ΠŸΠžΠ‘Π›Π•Π”ΠΠ˜Π₯ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованным инструмСнтом Π² арсСналС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° 1Π‘. Он позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС записи ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. БинтаксичСски ΠΎΠ½ выглядит ΠΊΠ°ΠΊ псСвдо-Ρ‚Π°Π±Π»ΠΈΡ†Π°, которая ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ основной запрос ΠΈΠ»ΠΈ ссылаСтся Π½Π° Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ рСгистра.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ срСз послСдних Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½Ρƒ запись для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ПО. Если для ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ записСй Π½Π΅Ρ‚, ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ срСз ΠΎΡ‚ Π»Π΅Π²ΠΎΠ³ΠΎ соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ NULL-значСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² запросС:

ВЫБРАВЬ

Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ….Π‘ΠΊΠ»Π°Π΄,

Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ….НомСнклатура,

Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ….ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ

Π˜Π—

РСгистрНакоплСния.ВоварыНаБкладах.ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ(, , , Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ….Π‘ΠΊΠ»Π°Π΄, Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄ΡΠΊΠΈΡ….НомСнклатура) КАК Π‘Ρ€Π΅Π·ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡ…

Однако, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈΠ»ΠΈ рСгистром, Π³Π΄Π΅ Π½Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, синтаксис Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‹ΠΌ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова Π² Π½Π°Ρ‡Π°Π»Π΅ запроса. Π’Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ поля Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это измСрСния рСгистра, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, Ссли Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚.

Π‘Ρ€Π΅Π· послСдних Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько записСй с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π° Ρ‚Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ физичСский ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи (ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки) большС. Π’ контСкстС рСгистров 1Π‘ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ соотвСтствуСт порядку провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

  • πŸš€ ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ остаткам Π±Π΅Π· суммирования ΠΎΠ±ΠΎΡ€ΠΎΡ‚ΠΎΠ².
  • πŸ“‰ Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сСрвСр Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… истории.
  • πŸ” ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиям Π²Π½ΡƒΡ‚Ρ€ΠΈ срСза, суТая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ поиска.

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ использованиС срСза послСдних Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ трСбования Π½Π° индСксы. Если Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… отсутствуСт индСкс, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ поля ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ уровня ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ВсСгда провСряйтС ΠΏΠ»Π°Π½ выполнСния запроса Π² консоли запросов.

πŸ’‘

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΏΠΎ остаткам всСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ рСгистров (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΏΠΎΠ΄ использованиС срСза послСдних.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π‘Π Π•Π—ΠŸΠ•Π Π’Π«Π₯ ΠΈ сцСнарии примСнСния

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ своСго Π±ΠΎΠ»Π΅Π΅ популярного Π°Π½Π°Π»ΠΎΠ³Π°, Π‘Π Π•Π—ΠŸΠ•Π Π’Π«Π₯ примСняСтся Π² спСцифичСских Π·Π°Π΄Π°Ρ‡Π°Ρ… Π°Π½Π°Π»ΠΈΠ·Π°. Π•Π³ΠΎ основная функция β€” Π½Π°ΠΉΡ‚ΠΈ ΡΠ°ΠΌΡƒΡŽ Ρ€Π°Π½Π½ΡŽΡŽ запись для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ расчСтС сСбСстоимости ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ЀИЀО (ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΡˆΠ΅Π») ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ истории измСнСния Ρ†Π΅Π½.

Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° срСзу послСдних, Π½ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ поиска Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. БистСма ΠΈΡ‰Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° (ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° записи) для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Если Ρ‚Π°ΠΊΠΈΡ… записСй нСсколько с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ, выбираСтся запись с наимСньшим физичСским ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ.

Частая ошибка Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ МИН(ΠŸΠ΅Ρ€ΠΈΠΎΠ΄) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ соСдинСниСм. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊΡ€Π°ΠΉΠ½Π΅ нСэффСктивСн. Он Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄Π²ΡƒΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ: сначала для нахоТдСния ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Ρ‚, Π·Π°Ρ‚Π΅ΠΌ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ самих записСй. Нативный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… выполняСт это Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ поставки Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π° Π·Π° всС врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. ИспользованиС срСза ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ этот Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ максимально быстро, Π΄Π°ΠΆΠ΅ Ссли Π² рСгистрС Π·Π°ΠΊΡƒΠΏΠΎΠΊ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ строк.

ВЫБРАВЬ

Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ….ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚,

Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ….НомСнклатура,

Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ….ΠŸΠ΅Ρ€ΠΈΠΎΠ΄,

Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ….Π¦Π΅Π½Π°

Π˜Π—

РСгистрНакоплСния.Π—Π°ΠΊΡƒΠΏΠΊΠΈ КАК Π—Π°ΠΊΡƒΠΏΠΊΠΈ

Π‘Π Π•Π—ΠŸΠ•Π Π’Π«Π₯ ПО ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚, НомСнклатура

КАК Π‘Ρ€Π΅Π·ΠŸΠ΅Ρ€Π²Ρ‹Ρ…

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… чувствитСлСн ΠΊ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. Если для ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ записи, ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСна Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², Π³Π΄Π΅ трСбуСтся ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π΄Π°ΠΆΠ΅ Ρ‚Π΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ (Π² Ρ‚Π°ΠΊΠΈΡ… случаях потрСбуСтся внСшнСС соСдинСниС).

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании срСза ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° этот ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π΅ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ "ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ" события.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ нюанс β€” взаимодСйствиС с ΠΎΡ‚Π±ΠΎΡ€Π°ΠΌΠΈ. ΠžΡ‚Π±ΠΎΡ€Ρ‹, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΊ полям ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для суТСния мноТСства Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΎΠΊ. ΠžΡ‚Π±ΠΎΡ€Ρ‹ ΠΏΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°ΠΌ (Π½Π΅ измСрСниям) ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ послС формирования срСза, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ссли ΠΎΡ‚Π±ΠΎΡ€ Π½Π΅ поддСрТиваСтся индСксами.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности срСза

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠ»Π°Π½ выполнСния

Π Π°Π·Π½ΠΈΡ†Π° Π² скорости выполнСния запросов с использованиСм срСзов ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ порядков. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎΡ‡Π΅ΠΌΡƒ, Π½ΡƒΠΆΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π‘Π£Π‘Π” (MS SQL Server, PostgreSQL ΠΈΠ»ΠΈ Oracle) ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ эти запросы. ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сортировки всСго Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ построСния Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² памяти ΠΈΠ»ΠΈ Π½Π° дискС.

Π‘Ρ€Π΅Π·Ρ‹ ΠΆΠ΅, благодаря Π½Π°Π»ΠΈΡ‡ΠΈΡŽ спСциализированных индСксов Π² 1Π‘, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Index Seek. Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… просто ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ индСксу, находя ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΈΠ»ΠΈ послСднюю запись для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, Π½Π΅ затрагивая ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (Heap) ΠΈΠ»ΠΈ кластСрный индСкс ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ называСтся "ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ индСкса".

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС характСристик Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… записСй:

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ИспользованиС индСкса Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ…
Π‘Ρ€Π΅Π· послСдних (Π²ΠΈΡ€Ρ‚. Ρ‚Π°Π±Π»ΠΈΡ†Π°) O(log N) ПолноС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π›ΡŽΠ±ΠΎΠΉ (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй)
Π‘Ρ€Π΅Π· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… (явный) O(log N) ПолноС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π›ΡŽΠ±ΠΎΠΉ (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй)
Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° с MAX(ΠŸΠ΅Ρ€ΠΈΠΎΠ΄) O(N log N) ЧастичноС / Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π”ΠΎ 100 тысяч записСй
ΠŸΠΎΠ΄Π·Π°ΠΏΡ€ΠΎΡ с ВОП 1 O(N * M) Зависит ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠœΠ°Π»Ρ‹ΠΉ (Π΄ΠΎ 10 тысяч)

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, использованиС Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… срСзов являСтся Π±Π΅Π·Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для высоконагруТСнных систСм. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТности O(N log N) становятся "ΡƒΠ·ΠΊΠΈΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌ" ΠΏΡ€ΠΈ ростС Π±Π°Π·Ρ‹, вызывая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΡ‚ сСрвСра.

Однако, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ срСза зависит ΠΎΡ‚ сСлСктивности ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ². Если Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ срСз послСдних ΠΏΠΎ всСму рСгистру Π±Π΅Π· ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ², это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рСсурсоСмко, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ придСтся ΠΎΠ±ΠΎΠΉΡ‚ΠΈ всС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ. Но Ссли Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π±ΠΎΡ€ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ складу ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ молниСносной.

Для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠ»Π°Π½Π° выполнСния рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ консоль запросов ΠΈΠ»ΠΈ внСшниС ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ Π‘Π£Π‘Π”. Π˜Ρ‰ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Clustered Index Scan β€” ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ срСз Π½Π΅ сработал ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈ происходит ΠΏΠΎΠ»Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ срСз ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСкс?

Если Π² запросС Π΅ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π΄ полями индСкса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π“ΠžΠ”(ΠŸΠ΅Ρ€ΠΈΠΎΠ΄)) ΠΈΠ»ΠΈ нСявноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования индСкса, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ оптимизация запросов

Π”Π°ΠΆΠ΅ зная Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки, сводящиС Π½Π° Π½Π΅Ρ‚ прСимущСства срСзов. Одна ΠΈΠ· самых распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ состав ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ПО. Если Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ лишнСС ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ являСтся ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅ участвуСт Π² Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ΅ логичСски, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ записСй ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠΎΡ‚Π΅Ρ€ΡŽ Π΄Π°Π½Π½Ρ‹Ρ….

Другая частая ошибка β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ срСза ΠΏΠΎ полям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² измСрСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти ΠΎΡ‚Π±ΠΎΡ€Ρ‹ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ области поиска. НапримСр, ΠΎΡ‚Π±ΠΎΡ€ ΠΏΠΎ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ > 0 Π² срСзС послСдних Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π‘Π£Π‘Π” быстрСС Π½Π°ΠΉΡ‚ΠΈ запись, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ количСство Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΊΠ»ΡŽΡ‡ индСкса. Π’Π°ΠΊΠΎΠΉ ΠΎΡ‚Π±ΠΎΡ€ примСняСтся постфактум.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ запросов со срСзами Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π°Π½Π°Π»ΠΈΠ·Π° структуры рСгистра. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ измСрСния (Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π² спискС индСкса) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π±ΠΎΡ€Π°Ρ… запроса. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π‘Π£Π‘Π” ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ большиС пласты Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° самом Ρ€Π°Π½Π½Π΅ΠΌ этапС.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… срСзов. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° срСза послСдних (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚) часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° выполнСния. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° нСсколько ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов с записью ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

  • πŸ›‘ НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вычисляСмыС поля Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° Π½Π° поля индСкса.
  • βš™οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ статистики ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π² Π‘Π£Π‘Π” для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π°.
  • πŸ“ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π²Ρ‹Π±ΠΎΡ€Π° всСх ΠΏΠΎΠ»Π΅ΠΉ (*), Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· срСз послСдних Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ записи (провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ссли ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ настроСн агрСссивно. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с грязными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (NOLOCK), Π½ΠΎ это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ возмоТности конструктора запросов ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда свСряйтС синтаксис с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, особСнно ΠΏΡ€ΠΈ использовании Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΈ срСз послСдних Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с упорядочСнными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ записи. Если Π² вашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π΅Ρ‚ поля ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ срСза Π±ΡƒΠ΄Π΅Ρ‚ нСпрСдсказуСмым.

πŸ’‘

Π“Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ сочСтаниС ΠΎΡ‚Π±ΠΎΡ€ΠΎΠ² ΠΏΠΎ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ измСрСниям ΠΈ использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† вмСсто Ρ€ΡƒΡ‡Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΎΠΊ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ· сфСры Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ. НСобходимо ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚ "Π˜ΡΡ‚ΠΎΡ€ΠΈΡ измСнСния Ρ†Π΅Π½" для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ событиС измСнСния Ρ†Π΅Π½Ρ‹. Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ комбинация срСзов. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз ΠΏΠ΅Ρ€Π²Ρ‹Ρ… для нахоТдСния Π΄Π°Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π° Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ для поиска ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π’ конфигурациях Ρ‚ΠΈΠΏΠ° "Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ" ΠΈΠ»ΠΈ "ERP" часто встрСчаСтся Π·Π°Π΄Π°Ρ‡Π° расчСта сСбСстоимости. Алгоритм ЀИЀО Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ знания ΠΏΠ°Ρ€Ρ‚ΠΈΠΉ. Π‘Ρ€Π΅Π· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… позволяСт быстро Π½Π°ΠΉΡ‚ΠΈ ΡΠ°ΠΌΡƒΡŽ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΏΠ°Ρ€Ρ‚ΠΈΡŽ Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π° складС, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π½Π° встроСнном языкС 1Π‘ ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ срСзов Π² ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ссли ΠΎΠ½Π° повторяСтся. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ позволяСт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ запросы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ»Π°Π½ выполнСния ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π»ΡΡ Π½Π° сторонС Π‘Π£Π‘Π”.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ структуры запроса для получСния послСдних Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Ρƒ:

ВЫБРАВЬ

ДвиТСния.ΠŸΠ΅Ρ€ΠΈΠΎΠ΄,

ДвиТСния.Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€,

ДвиТСния.Π‘ΡƒΠΌΠΌΠ°

Π˜Π—

РСгистрНакоплСния.ВзаиморасчСты КАК ДвиТСния

Π‘Π Π•Π—ΠŸΠžΠ‘Π›Π•Π”ΠΠ˜Π₯ ПО Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€

КАК ДвиТСния

Π“Π”Π•

ДвиТСния.ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ ΠœΠ•Π–Π”Π£ &ΠΠ°Ρ‡ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π° И &ΠšΠΎΠ½ΠŸΠ΅Ρ€ΠΈΠΎΠ΄Π°

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Ρƒ Π±Ρ‹Π»ΠΈ тысячи ΠΎΠΏΠ»Π°Ρ‚ ΠΈ ΠΎΡ‚Π³Ρ€ΡƒΠ·ΠΎΠΊ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° запись β€” послСдняя ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ (ΠΈΠ»ΠΈ послСдняя Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ‚ΠΈΠΏΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹).

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, mastery владСния срСзами ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΈ послСдних ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ junior-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ профСссионала высокого уровня. Π­Ρ‚ΠΎ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅, висящиС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Π² быстрыС ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹Π΅ интСрфСйсы, радуя ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы 1Π‘.

Π’ Ρ‡Π΅ΠΌ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ срСза ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ сортировки ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ?

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° упорядочиваСт вСсь Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, трСбуя рСсурсов Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ строк. Π‘Ρ€Π΅Π· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ запись Π½Π° Π³Ρ€ΡƒΠΏΠΏΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс для прямого ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Ρ‡Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½ΠΎ ΠΏΠΎ памяти.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз послСдних для рСгистров Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ?

НСт, рСгистры Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† срСзов Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ для рСгистров накоплСния. Для Π½ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ запросы с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΈΠ»ΠΈ спСцифичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π² срСзС послСдних нСсколько записСй ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄?

БистСма Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ запись с наибольшим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° строки (физичСский порядок записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это соотвСтствуСт Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… с Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄Π°Ρ‚ΠΎΠΉ.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ срСз Π² ΠΏΠ»Π°Π½Π΅ выполнСния запроса?

НСобходимо ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния Π² консоли запросов 1Π‘ ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Π΅ Π‘Π£Π‘Π”. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "Top" ΠΈΠ»ΠΈ спСцифичСскиС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΏΠΎ индСксу Π±Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сортировки (Sort) ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ (Hash Match/Stream Aggregate) ΠΏΠΎ всСму ΠΎΠ±ΡŠΠ΅ΠΌΡƒ, Π·Π½Π°Ρ‡ΠΈΡ‚ срСз Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Зависит Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° срСзов ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘?

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис стабилСн, Π½ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. РСкомСндуСтся всСгда Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсиях.