Сұрау шектеулері: Өкілдік және сұрау шектеулері
Делегацияны түсіну
Power Apps a Power Fx сұрау деректер көзі файлында іске қосуға болатын баламалы сұрауға толығымен аударылуы мүмкін болса, деректер көзі серверімен жақсы жұмыс істейді. Power Apps деректер көзі түсінетін сұрауды жібереді, сұрау деректер көзі ішінде орындалады және сұрау нәтижелері қайтарылады Power Apps. Мысалы, деректер көзі деректер көзі ішіндегі деректерді сүзу жұмысын орындап, тек сүзгі шарттарына сәйкес келетін жолдарды қайтаруы мүмкін. Бұл дұрыс жұмыс істегенде, сұрау жұмысын орындау үшін сұрау деректер көзі-ге берілген деп айтамыз.
Дегенмен, Power Fx сұрауларды барлық деректер көздерінде әрқашан баламалы сұрауларға аудару мүмкін емес. Мысалы, Dataverse Excelге қарағанда көбірек сұрау мүмкіндіктерін қолдайды. Dataverse «in» (мүшелік) сұрау операторын қолдайды, ал Excel қолданбайды. Сұрау деректер көзі қолдамайтын мүмкіндікті пайдаланса, сұрау өкілетті емес деп айтамыз. Жалпы, сұрау өрнегінің кез келген бөлігі өкілетті емес болса, сұраудың ешбір бөлігін өкілеттік бермейміз.
Сұрау өкілеттілік берілмейтін болса, Power Apps тек деректер көзі ішінен алғашқы 500 жазбаны алады, содан кейін сұраудағы әрекеттерді орындаңыз. Бұл шектеуді 2000 жазбаға дейін арттыруға болады Шектеуді өзгертуPower Apps Power Apps жақсы өнімділігін сақтау үшін нәтиже өлшемін 500 жазбамен шектейді. Тәжірибе арқылы біз осы өлшемдерден үлкен нәтиже жиындары қолданбаңыз үшін және жалпы Power Apps үшін өнімділік мәселелерін тудыратынын анықтадық.
Дегенмен, бұл шектеу мәселе болуы мүмкін, себебі деректер көзі деректері 500/2000 жазбадан асса, сұрау дұрыс емес нәтижелерді қайтаруы мүмкін. Мысалы, деректер көзі файлында 10 миллион жазба бар және сұрауыңыз деректердің соңғы бөлігінде жұмыс істеуі керек мысалды қарастырыңыз. (Мысалы, «Z» әрпінен басталатын отбасы аттары) Дегенмен, сұрауыңызда өкілетті емес оператор бар (мысалы, бөлек.) Бұл жағдайда сіз тек алғашқы 500/2000 жазбаны аласыз және сізде қате бар нәтижелер.
деректер көзі үшін өкілетті кестелерді пайдалану арқылы Power Fx сұрауларыңызды жасаңыз. Өкілдік беруге болатын сұрау функцияларын ғана пайдалану керек. Бұл қолданбаның жақсы жұмыс істеуін сақтаудың және пайдаланушылардың барлық қажетті ақпаратқа қол жеткізуін қамтамасыз етудің жалғыз жолы.
Өкілеттеу мүмкін емес жерлерді анықтайтын өкілеттеу туралы ескертулерді ескеріңіз. Кішігірім деректер жиындарымен (500 жазбадан аз) жұмыс жасасаңыз, кез келген деректер көзі және формуланы пайдалана аласыз, себебі формуланы беру мүмкін болмаса, қолданба деректерді жергілікті түрде өңдей алады.
Ескертпе
Өкілеттеу туралы ескертулер дұрыс нәтижелер болуы үшін бағдарламаңызды басқаруға көмектеседі. Егер деректер көзі ішіндегі деректер 500 жазбадан асса және функцияны өкілеттік беру мүмкін болмаса, Power Fx өрнекті көк астын сызумен белгілейді.
Берілетін деректер көздері
Өкілеттеуге тек белгілі кестелік деректер көздері үшін қолдау көрсетеді. Егер деректер көзі өкілдікке қолдау көрсетсе, оның қосқыш құжаттамасында ол қолдау көрсетіледі. Мысалы, мына кестелік деректер көздері ең танымал және өкілеттеуді қолдайды:
- Power Apps үшін тапсырылатын функциялар мен операциялар Microsoft Dataverse
- Power Apps үшін тапсырылатын функциялар мен операциялар SharePoint
- Power Apps SQL серверіне арналған өкілетті функциялар мен операциялар
- Power Apps Salesforce үшін өкілетті функциялар мен операциялар
Импортталған Excel жұмыс кітаптары ( Қолданбаңызға статикалық деректерді қосу деректер көзі көмегімен), жинақтар мен мәтінмәндік айнымалы мәндерде сақталған кестелер өкілдіктерді қажет етпейді. Бұл деректердің барлығы қазірдің өзінде жадта және толық Power Apps тілін пайдалануға болады.
Өкілеттеуге болатын функциялар
Келесі қадам — тек өкілеттеуге болатын формулаларды пайдалану. Мұнда өкілеттеуге болатын формула элементтері қамтылған. Алайда, әр деректер көзі әртүрлі және кейбіреулері осы элементтердің кейбіреулерін қолдамайды. Нақты формуладағы өкілеттеу туралы ескертулерді қараңыз.
Сүзгі функциялары
Сүзгі, Іздеу, Бірінші және Іздеу өкілетуге болады.
Сүзгі және Іздеу функцияларында сәйкес жазбаларды таңдау үшін оларды кестенің бағандарымен бірге пайдалануға болады:
- Және (оның ішінде &&), Не (оның ішінде ||), Емес (оның ішінде !)
- жылы
Ескертпе
In тек деректер көзі негізіндегі бағандар үшін өкілеттік берілген. Мысалы, егер деректер көзі Есептік жазбалар кесте болса, онда
Filter(Accounts, Name in ["name1", "name2"])
бағалау үшін деректер көзі өкілдігін береді. Дегенмен,Filter(Accounts, PrimaryContact.Fullname in ["name1", "name2"])
өкілетті емес, себебі Төменгі аты баған басқа кестеде (PrimaryContact) Есептік жазбалардан. Өрнек жергілікті түрде бағаланады. - =, <>, >=, <=, >, <
- +, -
- TrimEnds
- IsBlank
- StartsWith, EndsWith
- Басқару сипаттары және жаһандық және мәтінмәндік айнымалылар сияқты барлық жазбаларда бірдей тұрақты мәндер.
Сондай-ақ сіз формулаңыздың есептегенде тұрақты мәнді беретін бөліктерін барлық жазбалар үшін пайдалана аласыз. Мысалы, Left( Language(), 2 ), Күн (2019, 3, 31 ) және Today() жазбаның ешбір бағандарына тәуелді емес, сондықтан барлық жазбалар үшін бірдей мәнді қайтарады. Бұл мәндерді деректер көзіне тұрақты мән ретінде жіберуге болады және өкілеттеуді бұғаттамайды.
Алдыңғы тізім мына елеулі элементтерді қамтымайды:
- Егер
- *, /, Мод
- Бағанды трансляциялау әрекеттері Мәтін, Мән
- Біріктіру (соның ішінде &)
- ExactIn
- Жолдық манипуляция функциялары: Төменгі, Жоғарғы, Сол, Орта, Лен, ...
- Сигналдар: Орналасқан жер, Жылдамдау, Компас, ...
- Ұшпа заттар: Rand, ...
- Жинақтар
Сұрау шектеулері
Деңгейлерді іздеу
Power Apps екі іздеу деңгейін қолдайды. Бұл Power Fx сұрау өрнегінде - ең көбі - екі іздеу функциясы болуы мүмкін дегенді білдіреді. Бұл шектеу өнімділікті сақтау болып табылады. Егер сұрау өрнегі іздеуді қамтыса, Power Apps алдымен негізгі кестені алу үшін сұрау жасайды. Содан кейін ол іздеу ақпаратымен бірінші кестені кеңейтетін екінші сұрауды орындайды. Біз одан жоғары деңгейді барынша қолдаймыз. Дегенмен, офлайн режимінде іздеу кеңейтімдерінің бір деңгейін ғана қолдаймыз.
Өрнек бағалау – субъектінің қасиеті теңдік операторының «LHS» сол жағында болуы керек
Салыстырылатын нысанның қасиетін теңдеудің сол жағындағы "LHS" өрнекте орналастыру маңызды. Көрсететіндей, төмендегі мысалда 'Бизнес бірлігінің идентификаторы' нысан сипаты.Аты сипат мәні болып табылады және ол бағаланатын өрнектің LHS жүйесінде орналасуы керек. Келесі өрнек сәтті орындалады:
Filter(
Budgets,
'Business unit ID'.Name = LookUp(
Users,
'Primary Email' = User().Email,
'Business Unit'
).Name,
DataCardValue37.Selected.'Date Range String'='Date Range String'
)
Дегенмен, бұл өрнек болмайды:
Filter(
Budgets,
LookUp(
Users,
'Primary Email' = User().Email,
'Business Unit'
).Name = 'Business unit ID'.Name,
'Date Range String'=DataCardValue37.Selected.'Date Range String'
)
Сұрыптау функциялары
Сұрыптау және SortByColumns өкілетуге болады.
Сұрыптау параметрінде формула тек бір бағанның аты болуы мүмкін және басқа операторларды немесе функцияларды қамтуы мүмкін емес.
Статистикалық функциялар
Белгілі жиынтық функцияларды серверлік қолдау негізінде өкілеттік беруге болады. Қосынды, Орташа, Min, сияқты функциялар және Макс өкілетуге болады. CountRows және Санау сияқты санау функцияларын да өкілеттік беруге болады. Дегенмен RemoveIf және UpdateIf делегация шектеулері бар. Қазіргі уақытта деректер көздерінің шектеулі саны ғана осы функциялар үшін өкілдікке қолдау көрсетеді. Қосымша мәліметтерді Өкілдер тізімін қараңыз.
тапсырылмайтын функциялар
Барлық басқа функциялар, соның ішінде мына елеулі функциялар өкілеттеуді қолдамайды:
тапсырылмайтын шектеулер
Өкілеттеу мүмкін емес формулалар жергілікті өңделеді. Жергілікті өңдеу Power Apps формула тілінің толық кеңдігін пайдалануға мүмкіндік береді. Бірақ мұның бағасы бар: алдымен барлық деректерді құрылғыға жеткізу керек, бұл үшін желі арқылы деректердің үлкен мөлшерін шығарып алу керек. Бұл уақыт алуы мүмкін, бұл бағдарламаңыз баяу немесе жаңылысқан сияқты әсер беруі мүмкін.
Мұны болдырмау үшін Power Apps жергілікті өңдеуге болатын деректердің мөлшеріне шектеу қояды: әдепкі бойынша 500 жазба. Біз бұл санды шағын деректер жиынтықтарына әлі де толық қатынасыңыз болуы және ішінара нәтижелерді көру арқылы үлкен деректер жиынтықтарын пайдалануды нақтылай алуыңыз үшін таңдадық.
Бұл құралды пайдаланған кезде мұқият болу керек, өйткені ол пайдаланушыларды шатастыруы мүмкін. Мысалы, миллион жазбадан тұратын деректер көзі үстінен тағайындау мүмкін емес таңдау формуласы бар Сүзгі функциясын қарастырыңыз. Сүзу жергілікті түрде жасалатындықтан, алғашқы 500 жазба ғана қарап шығылады. Қажетті жазба 501 немесе 500 001 жазба болса, ол Сүзгі арқылы қарастырылмайды немесе қайтарылмайды.
Статистикалық функциялар да шатасуға әкелуі мүмкін. Дәл сол миллиондық деректер көзі бағанынан Орташа алыңыз. Орташа мәнді бұл жағдайда өкілеттік беру мүмкін емес, себебі өрнек өкілеттігі берілмейді ( бұрынғы ескертуді қараңыз), сондықтан тек алғашқы 500 жазба орташаланған. Егер абай болмасаңыз, бағдарламаңыздың пайдаланушысы ішінара жауапты толық жауап ретінде дұрыс емес түсінуі мүмкін.
Шекті өзгерту
500 — жазбалардың әдепкі саны, бірақ сіз бүкіл бағдарлама үшін бұл санды өзгерте аласыз:
- Параметрлер түймешігін таңдаңыз.
- Жалпы астында Дерек жолының шегі параметрін 1-ден 2000-ға өзгертіңіз.
Кейбір жағдайларда сіз 2000 (немесе 1000 немесе 1500) сценарийіңіздің қажеттіліктерін қанағаттандыратынын білесіз. Мұқият болу арқылы сіз сценарийіңізге сәйкес келуі үшін осы санды арттыра аласыз. Бұл санды арттырғанда, бағдарламаңыздың өнімділігі төмендеуі мүмкін, әсіресе бағандары көп кең кестелерде. Сөйтсе де, ең жақсы жауап — мүмкіндігінше көп өкілеттеу.
Қолданбаңыз үлкен деректер жиынына дейін масштабтай алатынына көз жеткізу үшін бұл параметрді 1-ге дейін азайтыңыз. Өкілеттеу мүмкін емес ештеңе бір жазбаны қайтарады, мұны бағдарламаны сынау кезінде анықтау оңай. Бұл концепцияны растайтын бағдарламаны өндіріске шығаруға әрекеттенгенде тосын жағдайлардың алдын алуға көмектеседі.
Өкілеттеу туралы ескертулер
Не өкілеттеніп жатқанын және не өкілеттеніп жатпағанын білуді жеңілдету үшін Power Apps сіз өкілеттеу мүмкін емес бірдеңені қамтитын формуланы жасағанда ескерту (сары үшбұрыш) береді.
Өкілеттеу туралы ескертулер тек өкілеттеуге болатын деректер көздерінде жұмыс жасайтын формулаларда көрінеді. Ескертуді көрмесеңіз және формулаңыз дұрыс өкілеттік берілмейді деп ойласаңыз, деректер көзі түрін осыдан бұрынғы өкілетілетін деректер көздері тізімімен салыстырыңыз. мақала.
Мысалдар
Бұл мысал үшін [dbo].[Fruit] деп аталатын SQL сервер кестесіне негізделген үш экранды қолданбаны автоматты түрде жасайсыз. Қолданбаны жасау жолы туралы ақпарат алу үшін туралы Dataverse мақаладағы ұқсас принциптерді SQL серверіне қолдануға болады.
Галереяның Элементтер сипатында SortByColumns және Іздеу< бар формулаға орнатылған. a10> функциялар, олардың екеуін де беруге болады.
Іздеу жолағына "Apple" деп теріңіз.
Бағдарлама іздеу сұрауын өңдеу үшін SQL Server серверімен байланысып жатқанда экранның жоғарғы жағында көп нүктелер уақытша пайда болады. Тіпті деректер көзі миллиондаған жазбаларды қамтыса да, іздеу шарттарына сай барлық жазбалар пайда болады.
Іздеу нәтижелеріне "Алма" және "Ананас" кіреді себебі Іздеу функция мәтін бағанының барлық жерінде көрінеді. Жеміс атауының басында іздеу термині бар жазбаларды ғана тапқыңыз келсе, күрделірек іздеу шарты бар Сүзгі деген басқа өкілетті функцияны пайдалана аласыз. (Қарапайымдылық үшін SortByColumns қоңырауын алып тастаңыз.)
Жаңа нәтижелерге "Алмалар" бірақ "Ананас" кірмейді. Дегенмен, галерея жанында (және сол жақ навигация тақтасы нобайларды көрсетсе, экран нобайында) сары үшбұрыш көрінеді әрі формула бөлігінің астында көк, ирек сызық көрінеді. Бұл элементтердің әрқайсысы ескертуді көрсетеді. Галереяның жанындағы сары үшбұрыштың үстіне меңзерді апарсаңыз, мына хабар пайда болады:
SQL Сервері өкілетті деректер көзі және Сүзгі өкілетті функция, дегенмен Орта және Len өкілеттіру мүмкін емес кез келген деректер көзі.
Бірақ бұл нәтиже берді, солай емес пе? Солай дерлік. Осы себепті бұл қызыл, ирек сызық емес, ал ескерту болып табылады.
- Егер кестеде 500-ден азырақ жазба болса, формула мінсіз жұмыс істеді. Барлық жазбалар құрылғыға әкелінді және Сүзгі жергілікті түрде қолданылды.
- Егер кестеде 500-ден көбірек жазба болса, формула 501 немесе одан жоғарырақ жазбаларды қайтармайды, тіпті егер ол шарттарға сәйкес болса да.
Сондай-ақ келесіні қараңыз
Өкілдікке жатпайтын функцияларды және сәйкес емес деректер жолының шектеулерін пайдаланудың өнімділікке әсері
Өкілетті пайдалану бойынша өнімділік бойынша кеңестер және ең жақсы тәжірибе