Distributed Query running serially

  • I am experimenting with distributed partition view. My configuration is made up of 3 servers.

    1. One server is processing query, let me call it P1

    2. Two servers are containing large set of data; let me call those, CH1 and CH2.

    3. Link Server exists on P1 for CH1 and CH2.

     

    Following query is producing required result.

     

    SELECT count(*)

                FROM V_TEST

     

    Where, V_TEST is a view on P1, referencing table TEST1 on CH1 and TEST2 on CH2.

     

    Once query starts on P1, it establishes connection to CH1 and CH2 immediately, but then run serially on CH1 and CH2. Why is this not running in parallel on CH1 and CH2?

  • How does the view access TEST1 and TEST2? If you were to convert the view definition to a simple select statement and looked at the execution plan, does it look sequential? For example, if you are selecting from TEST1 where key IN (SELECT ForeignKey FROM TEST2) then that is a sequential process. All ForeignKey values must be obtained first from TEST2 before they can be compared to TEST1.

  • CREATE VIEW V_TEST

    AS

                SELECT *

                            FROM CH1.DB1.TEST1

     

                UNION ALL

     

                SELECT *

                            FROM CH2.DB2.TEST2

     

    By using profiler, we can confirm that query establish connection on CH1 and CH2 simultaneously, but run it serially.

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply