Displaying an Estimated Execution Plan generates CXPACKET, PAGELATCH_SH, and LATCH_EX [ACCESS_METHODS_DATASET_PARENT] waitsHow (and why) does TOP impact an execution plan?How is parallelism threshold (seconds) used if query CPU cost is actually unitlessHigh CXPACKET and LATCH_EX waitsHow does SQL Server's optimizer estimate the number of rows in a joined table?Long running query with index seekWhy is TOP operation in SQL execution planActual Query Plan Estimated Cost and dm_exec_query_stats worker time do not gelBad execution plan after stats update due to temp table100% CPU with bad execution planPlan changes to include Eager Spool causes the query to run slower

Further factorisation of a difference of cubes?

Removing all characters except digits from clipboard

Company stopped paying my salary. What are my options?

Why did they go to Dragonstone?

Two researchers want to work on the same extension to my paper. Who to help?

Extending Kan fibrations, without using minimal fibrations

What does this quote in Small Gods refer to?

Create less file for custom Theme

The meaning of a て-form verb at the end of this sentence

Was the Highlands Ranch shooting the 115th mass shooting in the US in 2019

How to see that 1 is a solution?

What was the notion of limit that Newton used?

Company threw a surprise party for the CEO, 3 weeks later management says we have to pay for it, do I have to?

Can the president of the United States be guilty of insider trading?

Remove color cast in darktable?

Ex-manager wants to stay in touch, I don't want to

How to slow yourself down (for playing nice with others)

Question about tidal forces and the Roche limit

Is there an application which does HTTP PUT?

Is ‘despite that’ right?

Why was wildfire not used during the Battle of Winterfell?

What does formal training in a field mean?

When do you stop "pushing" a book?

Why should password hash verification be time constant?



Displaying an Estimated Execution Plan generates CXPACKET, PAGELATCH_SH, and LATCH_EX [ACCESS_METHODS_DATASET_PARENT] waits


How (and why) does TOP impact an execution plan?How is parallelism threshold (seconds) used if query CPU cost is actually unitlessHigh CXPACKET and LATCH_EX waitsHow does SQL Server's optimizer estimate the number of rows in a joined table?Long running query with index seekWhy is TOP operation in SQL execution planActual Query Plan Estimated Cost and dm_exec_query_stats worker time do not gelBad execution plan after stats update due to temp table100% CPU with bad execution planPlan changes to include Eager Spool causes the query to run slower






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








12















I'm running Microsoft SQL Server 2016 SP2-CU6 (13.0.5292.0) on a 4 vCPU VM with max degree of parallelism set to 2 and cost threshold for parallelism set to 50.



In the mornings, when trying to display an Estimated Execution Plan for a SELECT TOP 100 query, I run into massive waits and the operation to render the estimated plan takes minutes, often times in the 5 - 7 minute range. Again, this is not the actual execution of the query, this is just the process to display an Estimated Execution Plan.



sp_WhoIsActive will show either PAGEIOLATCH_SH waits or LATCH_EX [ACCESS_METHODS_DATASET_PARENT] waits and when I run Paul Randal's WaitingTasks.sql script during the operation it shows CXPACKET waits with the worker threads showing PAGEIOLATCH_SH waits:



enter image description here



*resource description field = exchangeEvent id=Port5f6069e600 WaitType=e_waitPortOpen waiterType=Coordinator nodeId=1 tid=0 ownerActivity=notYetOpened waiterActivity=waitForAllOwnersToOpen



The worker threads look to be bringing the entire stats table into memory (as those page numbers as well as subsequent page numbers shown from Paul Randal's query point back to clustered key for the stats table). Once the plan does come back, it's basically instantaneous for the remainder of the day, even after I see most of the stats table attrition from cache with only various records remaining (that I assume were pulled due to seek operations from similar queries).



I would expect this initial behavior if the query was actually executing with a plan that used SCAN operators, but why is it doing this when evaluating execution plans only to arrive at a SEEK operator as shown in the plan linked above? What can I do (aside from running this statement before office hours so my data is appropriately cached) to help improve performance here? I'm assuming a pair of covering indexes would be beneficial, but would they really guarantee any changes in behavior? I have to work within some storage and maintenance window limitations here, and the query itself is generated from a vendor solution, so any other suggestions (besides better indexing) would be welcome at this point.










share|improve this question




























    12















    I'm running Microsoft SQL Server 2016 SP2-CU6 (13.0.5292.0) on a 4 vCPU VM with max degree of parallelism set to 2 and cost threshold for parallelism set to 50.



    In the mornings, when trying to display an Estimated Execution Plan for a SELECT TOP 100 query, I run into massive waits and the operation to render the estimated plan takes minutes, often times in the 5 - 7 minute range. Again, this is not the actual execution of the query, this is just the process to display an Estimated Execution Plan.



    sp_WhoIsActive will show either PAGEIOLATCH_SH waits or LATCH_EX [ACCESS_METHODS_DATASET_PARENT] waits and when I run Paul Randal's WaitingTasks.sql script during the operation it shows CXPACKET waits with the worker threads showing PAGEIOLATCH_SH waits:



    enter image description here



    *resource description field = exchangeEvent id=Port5f6069e600 WaitType=e_waitPortOpen waiterType=Coordinator nodeId=1 tid=0 ownerActivity=notYetOpened waiterActivity=waitForAllOwnersToOpen



    The worker threads look to be bringing the entire stats table into memory (as those page numbers as well as subsequent page numbers shown from Paul Randal's query point back to clustered key for the stats table). Once the plan does come back, it's basically instantaneous for the remainder of the day, even after I see most of the stats table attrition from cache with only various records remaining (that I assume were pulled due to seek operations from similar queries).



    I would expect this initial behavior if the query was actually executing with a plan that used SCAN operators, but why is it doing this when evaluating execution plans only to arrive at a SEEK operator as shown in the plan linked above? What can I do (aside from running this statement before office hours so my data is appropriately cached) to help improve performance here? I'm assuming a pair of covering indexes would be beneficial, but would they really guarantee any changes in behavior? I have to work within some storage and maintenance window limitations here, and the query itself is generated from a vendor solution, so any other suggestions (besides better indexing) would be welcome at this point.










    share|improve this question
























      12












      12








      12








      I'm running Microsoft SQL Server 2016 SP2-CU6 (13.0.5292.0) on a 4 vCPU VM with max degree of parallelism set to 2 and cost threshold for parallelism set to 50.



      In the mornings, when trying to display an Estimated Execution Plan for a SELECT TOP 100 query, I run into massive waits and the operation to render the estimated plan takes minutes, often times in the 5 - 7 minute range. Again, this is not the actual execution of the query, this is just the process to display an Estimated Execution Plan.



      sp_WhoIsActive will show either PAGEIOLATCH_SH waits or LATCH_EX [ACCESS_METHODS_DATASET_PARENT] waits and when I run Paul Randal's WaitingTasks.sql script during the operation it shows CXPACKET waits with the worker threads showing PAGEIOLATCH_SH waits:



      enter image description here



      *resource description field = exchangeEvent id=Port5f6069e600 WaitType=e_waitPortOpen waiterType=Coordinator nodeId=1 tid=0 ownerActivity=notYetOpened waiterActivity=waitForAllOwnersToOpen



      The worker threads look to be bringing the entire stats table into memory (as those page numbers as well as subsequent page numbers shown from Paul Randal's query point back to clustered key for the stats table). Once the plan does come back, it's basically instantaneous for the remainder of the day, even after I see most of the stats table attrition from cache with only various records remaining (that I assume were pulled due to seek operations from similar queries).



      I would expect this initial behavior if the query was actually executing with a plan that used SCAN operators, but why is it doing this when evaluating execution plans only to arrive at a SEEK operator as shown in the plan linked above? What can I do (aside from running this statement before office hours so my data is appropriately cached) to help improve performance here? I'm assuming a pair of covering indexes would be beneficial, but would they really guarantee any changes in behavior? I have to work within some storage and maintenance window limitations here, and the query itself is generated from a vendor solution, so any other suggestions (besides better indexing) would be welcome at this point.










      share|improve this question














      I'm running Microsoft SQL Server 2016 SP2-CU6 (13.0.5292.0) on a 4 vCPU VM with max degree of parallelism set to 2 and cost threshold for parallelism set to 50.



      In the mornings, when trying to display an Estimated Execution Plan for a SELECT TOP 100 query, I run into massive waits and the operation to render the estimated plan takes minutes, often times in the 5 - 7 minute range. Again, this is not the actual execution of the query, this is just the process to display an Estimated Execution Plan.



      sp_WhoIsActive will show either PAGEIOLATCH_SH waits or LATCH_EX [ACCESS_METHODS_DATASET_PARENT] waits and when I run Paul Randal's WaitingTasks.sql script during the operation it shows CXPACKET waits with the worker threads showing PAGEIOLATCH_SH waits:



      enter image description here



      *resource description field = exchangeEvent id=Port5f6069e600 WaitType=e_waitPortOpen waiterType=Coordinator nodeId=1 tid=0 ownerActivity=notYetOpened waiterActivity=waitForAllOwnersToOpen



      The worker threads look to be bringing the entire stats table into memory (as those page numbers as well as subsequent page numbers shown from Paul Randal's query point back to clustered key for the stats table). Once the plan does come back, it's basically instantaneous for the remainder of the day, even after I see most of the stats table attrition from cache with only various records remaining (that I assume were pulled due to seek operations from similar queries).



      I would expect this initial behavior if the query was actually executing with a plan that used SCAN operators, but why is it doing this when evaluating execution plans only to arrive at a SEEK operator as shown in the plan linked above? What can I do (aside from running this statement before office hours so my data is appropriately cached) to help improve performance here? I'm assuming a pair of covering indexes would be beneficial, but would they really guarantee any changes in behavior? I have to work within some storage and maintenance window limitations here, and the query itself is generated from a vendor solution, so any other suggestions (besides better indexing) would be welcome at this point.







      sql-server performance sql-server-2016






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked May 6 at 20:48









      John EisbrenerJohn Eisbrener

      5,57821443




      5,57821443




















          2 Answers
          2






          active

          oldest

          votes


















          11














          It appears your request for an actual execution plan triggered stats updates. Since you mention this happens in the mornings, I imagine there's an overnight process that does a lot of modifications to the tables involved?



          Thus SQL Server uses the stats to create the plan, has hit the modification threshold, and executes automatic stats updates as part of the operation.



          In the XML for the estimated plan you shared, I see these close-together update dates for stats from this morning:



          LastUpdate="2019-05-06T09:12:49.92"
          LastUpdate="2019-05-06T09:12:58.3"
          LastUpdate="2019-05-06T09:13:20.33"
          LastUpdate="2019-05-06T09:13:09.67"
          LastUpdate="2019-05-06T09:12:59.05"
          LastUpdate="2019-05-06T09:12:39.56"


          If these are very large, busy tables (seems likely based on the sampling percentages), then it's not too surprising that the stats updates are taking a lot of horsepower.






          share|improve this answer
































            7














            When I see long estimated plan times in SSMS it's one of the following in order of likelihood:



            1. The query optimizer decided that it needed to create or update statistics.

            2. The size of the estimated plan is very large (say, >10 MB) and it simply takes SSMS a long time to display it.

            3. Query compilation itself actually took a long time due to CPU usage in looking for a good enough plan.

            4. The server is under extreme duress. For example, I might have to wait for a gateway to become available.

            5. Various bugs that lead to extremely long running compile times.

            For your situation the answer is almost certainly that SQL Server is updating or creating statistics. There are a few clues: the size of the query plan is small, the query plan is relatively simple with a low cost, and compile CPU is significantly lower than compile time:



            enter image description here



            New contributor Josh Darnell also pointed out a good clue with the last updated time for statistics in the XML.



            SQL Server 2019 introduces a new wait type, WAIT_ON_SYNC_STATISTICS_REFRESH, for when queries are waiting on stats updates. It's much easier to diagnosis this issue on that version. Until then you'll just have to rely on indirect techniques.



            Workarounds include updating statistics during a maintenance period or enabling Auto Update Stats Async for the database. Please understand the full ramifications of that option before changing it. Query plans will be created before statistics are updated instead of after statistics updates. For some workloads that can be a huge win. For others it can do more harm than good.






            share|improve this answer























              Your Answer








              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "182"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f237509%2fdisplaying-an-estimated-execution-plan-generates-cxpacket-pagelatch-sh-and-lat%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              11














              It appears your request for an actual execution plan triggered stats updates. Since you mention this happens in the mornings, I imagine there's an overnight process that does a lot of modifications to the tables involved?



              Thus SQL Server uses the stats to create the plan, has hit the modification threshold, and executes automatic stats updates as part of the operation.



              In the XML for the estimated plan you shared, I see these close-together update dates for stats from this morning:



              LastUpdate="2019-05-06T09:12:49.92"
              LastUpdate="2019-05-06T09:12:58.3"
              LastUpdate="2019-05-06T09:13:20.33"
              LastUpdate="2019-05-06T09:13:09.67"
              LastUpdate="2019-05-06T09:12:59.05"
              LastUpdate="2019-05-06T09:12:39.56"


              If these are very large, busy tables (seems likely based on the sampling percentages), then it's not too surprising that the stats updates are taking a lot of horsepower.






              share|improve this answer





























                11














                It appears your request for an actual execution plan triggered stats updates. Since you mention this happens in the mornings, I imagine there's an overnight process that does a lot of modifications to the tables involved?



                Thus SQL Server uses the stats to create the plan, has hit the modification threshold, and executes automatic stats updates as part of the operation.



                In the XML for the estimated plan you shared, I see these close-together update dates for stats from this morning:



                LastUpdate="2019-05-06T09:12:49.92"
                LastUpdate="2019-05-06T09:12:58.3"
                LastUpdate="2019-05-06T09:13:20.33"
                LastUpdate="2019-05-06T09:13:09.67"
                LastUpdate="2019-05-06T09:12:59.05"
                LastUpdate="2019-05-06T09:12:39.56"


                If these are very large, busy tables (seems likely based on the sampling percentages), then it's not too surprising that the stats updates are taking a lot of horsepower.






                share|improve this answer



























                  11












                  11








                  11







                  It appears your request for an actual execution plan triggered stats updates. Since you mention this happens in the mornings, I imagine there's an overnight process that does a lot of modifications to the tables involved?



                  Thus SQL Server uses the stats to create the plan, has hit the modification threshold, and executes automatic stats updates as part of the operation.



                  In the XML for the estimated plan you shared, I see these close-together update dates for stats from this morning:



                  LastUpdate="2019-05-06T09:12:49.92"
                  LastUpdate="2019-05-06T09:12:58.3"
                  LastUpdate="2019-05-06T09:13:20.33"
                  LastUpdate="2019-05-06T09:13:09.67"
                  LastUpdate="2019-05-06T09:12:59.05"
                  LastUpdate="2019-05-06T09:12:39.56"


                  If these are very large, busy tables (seems likely based on the sampling percentages), then it's not too surprising that the stats updates are taking a lot of horsepower.






                  share|improve this answer















                  It appears your request for an actual execution plan triggered stats updates. Since you mention this happens in the mornings, I imagine there's an overnight process that does a lot of modifications to the tables involved?



                  Thus SQL Server uses the stats to create the plan, has hit the modification threshold, and executes automatic stats updates as part of the operation.



                  In the XML for the estimated plan you shared, I see these close-together update dates for stats from this morning:



                  LastUpdate="2019-05-06T09:12:49.92"
                  LastUpdate="2019-05-06T09:12:58.3"
                  LastUpdate="2019-05-06T09:13:20.33"
                  LastUpdate="2019-05-06T09:13:09.67"
                  LastUpdate="2019-05-06T09:12:59.05"
                  LastUpdate="2019-05-06T09:12:39.56"


                  If these are very large, busy tables (seems likely based on the sampling percentages), then it's not too surprising that the stats updates are taking a lot of horsepower.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited May 6 at 21:57

























                  answered May 6 at 21:33









                  Josh DarnellJosh Darnell

                  8,93232345




                  8,93232345























                      7














                      When I see long estimated plan times in SSMS it's one of the following in order of likelihood:



                      1. The query optimizer decided that it needed to create or update statistics.

                      2. The size of the estimated plan is very large (say, >10 MB) and it simply takes SSMS a long time to display it.

                      3. Query compilation itself actually took a long time due to CPU usage in looking for a good enough plan.

                      4. The server is under extreme duress. For example, I might have to wait for a gateway to become available.

                      5. Various bugs that lead to extremely long running compile times.

                      For your situation the answer is almost certainly that SQL Server is updating or creating statistics. There are a few clues: the size of the query plan is small, the query plan is relatively simple with a low cost, and compile CPU is significantly lower than compile time:



                      enter image description here



                      New contributor Josh Darnell also pointed out a good clue with the last updated time for statistics in the XML.



                      SQL Server 2019 introduces a new wait type, WAIT_ON_SYNC_STATISTICS_REFRESH, for when queries are waiting on stats updates. It's much easier to diagnosis this issue on that version. Until then you'll just have to rely on indirect techniques.



                      Workarounds include updating statistics during a maintenance period or enabling Auto Update Stats Async for the database. Please understand the full ramifications of that option before changing it. Query plans will be created before statistics are updated instead of after statistics updates. For some workloads that can be a huge win. For others it can do more harm than good.






                      share|improve this answer



























                        7














                        When I see long estimated plan times in SSMS it's one of the following in order of likelihood:



                        1. The query optimizer decided that it needed to create or update statistics.

                        2. The size of the estimated plan is very large (say, >10 MB) and it simply takes SSMS a long time to display it.

                        3. Query compilation itself actually took a long time due to CPU usage in looking for a good enough plan.

                        4. The server is under extreme duress. For example, I might have to wait for a gateway to become available.

                        5. Various bugs that lead to extremely long running compile times.

                        For your situation the answer is almost certainly that SQL Server is updating or creating statistics. There are a few clues: the size of the query plan is small, the query plan is relatively simple with a low cost, and compile CPU is significantly lower than compile time:



                        enter image description here



                        New contributor Josh Darnell also pointed out a good clue with the last updated time for statistics in the XML.



                        SQL Server 2019 introduces a new wait type, WAIT_ON_SYNC_STATISTICS_REFRESH, for when queries are waiting on stats updates. It's much easier to diagnosis this issue on that version. Until then you'll just have to rely on indirect techniques.



                        Workarounds include updating statistics during a maintenance period or enabling Auto Update Stats Async for the database. Please understand the full ramifications of that option before changing it. Query plans will be created before statistics are updated instead of after statistics updates. For some workloads that can be a huge win. For others it can do more harm than good.






                        share|improve this answer

























                          7












                          7








                          7







                          When I see long estimated plan times in SSMS it's one of the following in order of likelihood:



                          1. The query optimizer decided that it needed to create or update statistics.

                          2. The size of the estimated plan is very large (say, >10 MB) and it simply takes SSMS a long time to display it.

                          3. Query compilation itself actually took a long time due to CPU usage in looking for a good enough plan.

                          4. The server is under extreme duress. For example, I might have to wait for a gateway to become available.

                          5. Various bugs that lead to extremely long running compile times.

                          For your situation the answer is almost certainly that SQL Server is updating or creating statistics. There are a few clues: the size of the query plan is small, the query plan is relatively simple with a low cost, and compile CPU is significantly lower than compile time:



                          enter image description here



                          New contributor Josh Darnell also pointed out a good clue with the last updated time for statistics in the XML.



                          SQL Server 2019 introduces a new wait type, WAIT_ON_SYNC_STATISTICS_REFRESH, for when queries are waiting on stats updates. It's much easier to diagnosis this issue on that version. Until then you'll just have to rely on indirect techniques.



                          Workarounds include updating statistics during a maintenance period or enabling Auto Update Stats Async for the database. Please understand the full ramifications of that option before changing it. Query plans will be created before statistics are updated instead of after statistics updates. For some workloads that can be a huge win. For others it can do more harm than good.






                          share|improve this answer













                          When I see long estimated plan times in SSMS it's one of the following in order of likelihood:



                          1. The query optimizer decided that it needed to create or update statistics.

                          2. The size of the estimated plan is very large (say, >10 MB) and it simply takes SSMS a long time to display it.

                          3. Query compilation itself actually took a long time due to CPU usage in looking for a good enough plan.

                          4. The server is under extreme duress. For example, I might have to wait for a gateway to become available.

                          5. Various bugs that lead to extremely long running compile times.

                          For your situation the answer is almost certainly that SQL Server is updating or creating statistics. There are a few clues: the size of the query plan is small, the query plan is relatively simple with a low cost, and compile CPU is significantly lower than compile time:



                          enter image description here



                          New contributor Josh Darnell also pointed out a good clue with the last updated time for statistics in the XML.



                          SQL Server 2019 introduces a new wait type, WAIT_ON_SYNC_STATISTICS_REFRESH, for when queries are waiting on stats updates. It's much easier to diagnosis this issue on that version. Until then you'll just have to rely on indirect techniques.



                          Workarounds include updating statistics during a maintenance period or enabling Auto Update Stats Async for the database. Please understand the full ramifications of that option before changing it. Query plans will be created before statistics are updated instead of after statistics updates. For some workloads that can be a huge win. For others it can do more harm than good.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered May 6 at 23:29









                          Joe ObbishJoe Obbish

                          22.9k43496




                          22.9k43496



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Database Administrators Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f237509%2fdisplaying-an-estimated-execution-plan-generates-cxpacket-pagelatch-sh-and-lat%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

                              Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

                              Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form