Як пазбегнуць прагляду табліцы і індэкса для велізарных табліц

Я выкарыстоўваю MSSQL 2008 R2. У мяне ёсць табліца з вялікай колькасцю радкоў (тэставая табліца)

У мяне ёсць наступны SQL-код, калі ласка, прапануйце, дзе я магу выкарыстоўваць індэксны падказкі, сілы імкнуцца або любыя іншыя сродкі для павышэння прадукцыйнасці.

індэксы
 1. некластерный - idx_id (ідэнтыфікатар)
 2. некластерный - idx_name (імя)

SELECT DISTINCT
    p.id,
    p.name,
FROM 
    test p 
    LEFT OUTER JOIN 
    (
        SELECT 
            e.id 
        FROM 
            test e  
            INNER JOIN
            ( 
                SELECT 
                    c.id 
                FROM 
                    test c 
                GROUP BY 
                    c.id 
                HAVING 
                    COUNT(1) > 1 
            ) f 
            ON e.id = f.id
        WHERE 
            e.name = 'test_name'
    ) m 
    ON p.id = m.id
WHERE 
    m.id is null
4
Ці можаце вы паказаць нам план запыту?
дададзена аўтар iruvar, крыніца
Ці можаце вы паказаць нам план запыту?
дададзена аўтар iruvar, крыніца
Ці можаце вы паказаць нам план запыту?
дададзена аўтар iruvar, крыніца
Ці можаце вы паказаць нам план запыту?
дададзена аўтар iruvar, крыніца
Просьба прадставіць больш падрабязную інфармацыю: тое, што вы ўжо спрабавалі і чаму, можа задаць больш пэўнае пытанне. SO-х фармат Q & A, не «дапамагчы мне вырашыць маю праблему.»
дададзена аўтар kad81, крыніца
Просьба прадставіць больш падрабязную інфармацыю: тое, што вы ўжо спрабавалі і чаму, можа задаць больш пэўнае пытанне. SO-х фармат Q & A, не «дапамагчы мне вырашыць маю праблему.»
дададзена аўтар kad81, крыніца
Просьба прадставіць больш падрабязную інфармацыю: тое, што вы ўжо спрабавалі і чаму, можа задаць больш пэўнае пытанне. SO-х фармат Q & A, не «дапамагчы мне вырашыць маю праблему.»
дададзена аўтар kad81, крыніца
ПК з'яўляецца карысным. Праверце мой запыт.
дададзена аўтар Serge, крыніца
ПК з'яўляецца карысным. Праверце мой запыт.
дададзена аўтар Serge, крыніца
ПК з'яўляецца карысным. Праверце мой запыт.
дададзена аўтар Serge, крыніца
Як гэта не падыходзіць вашай структуры? Вы сказалі, што ў вас ёсць ПК.
дададзена аўтар Serge, крыніца
Як гэта не падыходзіць вашай структуры? Вы сказалі, што ў вас ёсць ПК.
дададзена аўтар Serge, крыніца
Што вы Primay Key? ID не з'яўляецца унікальным?
дададзена аўтар Serge, крыніца
Што вы Primay Key? ID не з'яўляецца унікальным?
дададзена аўтар Serge, крыніца
Што вы Primay Key? ID не з'яўляецца унікальным?
дададзена аўтар Serge, крыніца
Не маглі б вы водступ вашага запыту трохі? Гэта выглядае амаль як заблытаны код, як гэта.
дададзена аўтар Serge, крыніца
Не маглі б вы водступ вашага запыту трохі? Гэта выглядае амаль як заблытаны код, як гэта.
дададзена аўтар Serge, крыніца
Не маглі б вы водступ вашага запыту трохі? Гэта выглядае амаль як заблытаны код, як гэта.
дададзена аўтар Serge, крыніца
@Serge - Дзякуй за ваш адказ, але яго аленевая скура касцюм маёй структуры і не магу змяніць яго. Мне патрэбна дапамога па індэксе намёкаў, дзе выкарыстаць, што выкарыстоўваць
дададзена аўтар Nishad, крыніца
@Serge - Дзякуй за ваш адказ, але яго аленевая скура касцюм маёй структуры і не магу змяніць яго. Мне патрэбна дапамога па індэксе намёкаў, дзе выкарыстаць, што выкарыстоўваць
дададзена аўтар Nishad, крыніца
Ёсць яшчэ некалькі слупкоў у спісе выбару, але я showun толькі два з іх, і ёсць кампазітны priomary ключ і яго ня карысна, як я не выбар дадзеных для гэтых слупкоў
дададзена аўтар Nishad, крыніца
Ёсць яшчэ некалькі слупкоў у спісе выбару, але я showun толькі два з іх, і ёсць кампазітны priomary ключ і яго ня карысна, як я не выбар дадзеных для гэтых слупкоў
дададзена аўтар Nishad, крыніца
Ёсць яшчэ некалькі слупкоў у спісе выбару, але я showun толькі два з іх, і ёсць кампазітны priomary ключ і яго ня карысна, як я не выбар дадзеных для гэтых слупкоў
дададзена аўтар Nishad, крыніца
пачатковец тут, не ў сілах водступу, я спрабаваў і не ў стане забяспечыць выкананне плана, але, усё выкарыстоўваецца індэкс сканавання і адзін прагляд табліцы на левае вонкавае злучэнне табліцы р
дададзена аўтар Nishad, крыніца
пачатковец тут, не ў сілах водступу, я спрабаваў і не ў стане забяспечыць выкананне плана, але, усё выкарыстоўваецца індэкс сканавання і адзін прагляд табліцы на левае вонкавае злучэнне табліцы р
дададзена аўтар Nishad, крыніца
пачатковец тут, не ў сілах водступу, я спрабаваў і не ў стане забяспечыць выкананне плана, але, усё выкарыстоўваецца індэкс сканавання і адзін прагляд табліцы на левае вонкавае злучэнне табліцы р
дададзена аўтар Nishad, крыніца
пачатковец тут, не ў сілах водступу, я спрабаваў і не ў стане забяспечыць выкананне плана, але, усё выкарыстоўваецца індэкс сканавання і адзін прагляд табліцы на левае вонкавае злучэнне табліцы р
дададзена аўтар Nishad, крыніца

7 адказы

Колькі слупкоў у вашай табліцы? Калі ёсць толькі гэтыя дзве калоны, гэта не мае сэнсу, каб дадаць некластеризованный горада. Вы павінны стварыць кластарны індэкс ID слупка, і гэта - вы ўбачыце павелічэнне прадукцыйнасці.

Калі ў вас ёсць шмат colums, разгледзім два варыянты:

  1. Стварыць кластарны індэкс слупка NAME і некластеризованного індэкс ID слупкі.
  2. Стварэнне некластеризованного індэкса ID слупка і INCLUDE слупка NAME (вы будзеце ствараць пакрыцця індэкса, спосаб)
1
дададзена
Ёсць яшчэ некалькі слупкоў у спісе выбару, але я showun толькі два з іх, і ёсць кампазітны priomary ключ і яго ня карысна, як я не выбар дадзеных для гэтых слупкоў
дададзена аўтар Nishad, крыніца

Наогул кажучы, рэляцыйныя базы дадзеных (быўшы рэляцыйных) напісана такім чынам, каб аптымізаваць далучыцца заявамі. Пры выкарыстанні «Join» становішча з «ON» крытэрыяў, рухавік базы дадзеных можа стварыць аптымізаваны план выканання, які прымае структуру табліцы, індэксы і г.д. пад увагу. Пры злучэнні на суб-выбару, часам адны і тыя ж фактары, якія аптымізуюць не даступныя, ці не прымаюцца да ўвагі такім жа чынам. Гэта залежыць ад схемы, але гэта добрае правіла, каб выказаць здагадку, што <�моцны> стандартны далучыцца з «на» становішча будзе больш эфектыўным, чым далучыцца на суб-абярыце .

Ваша схема з'яўляецца даволі расплывістым, так што я нават не ўпэўнены, што вам трэба стыкі, але калі вы робіце, вы павінны старацца выконваць стыкі непасрэдна «на» умовах.

1
дададзена

Наогул кажучы, рэляцыйныя базы дадзеных (быўшы рэляцыйных) напісана такім чынам, каб аптымізаваць далучыцца заявамі. Пры выкарыстанні «Join» становішча з «ON» крытэрыяў, рухавік базы дадзеных можа стварыць аптымізаваны план выканання, які прымае структуру табліцы, індэксы і г.д. пад увагу. Пры злучэнні на суб-выбару, часам адны і тыя ж фактары, якія аптымізуюць не даступныя, ці не прымаюцца да ўвагі такім жа чынам. Гэта залежыць ад схемы, але гэта добрае правіла, каб выказаць здагадку, што <�моцны> стандартны далучыцца з «на» становішча будзе больш эфектыўным, чым далучыцца на суб-абярыце .

Ваша схема з'яўляецца даволі расплывістым, так што я нават не ўпэўнены, што вам трэба стыкі, але калі вы робіце, вы павінны старацца выконваць стыкі непасрэдна «на» умовах.

1
дададзена

Наогул кажучы, рэляцыйныя базы дадзеных (быўшы рэляцыйных) напісана такім чынам, каб аптымізаваць далучыцца заявамі. Пры выкарыстанні «Join» становішча з «ON» крытэрыяў, рухавік базы дадзеных можа стварыць аптымізаваны план выканання, які прымае структуру табліцы, індэксы і г.д. пад увагу. Пры злучэнні на суб-выбару, часам адны і тыя ж фактары, якія аптымізуюць не даступныя, ці не прымаюцца да ўвагі такім жа чынам. Гэта залежыць ад схемы, але гэта добрае правіла, каб выказаць здагадку, што <�моцны> стандартны далучыцца з «на» становішча будзе больш эфектыўным, чым далучыцца на суб-абярыце .

Ваша схема з'яўляецца даволі расплывістым, так што я нават не ўпэўнены, што вам трэба стыкі, але калі вы робіце, вы павінны старацца выконваць стыкі непасрэдна «на» умовах.

1
дададзена

Prerequise: ёсць першасны ключ

select distinct
    p.id
    , p.name
from test p 
where not exists (
    SELECT TOP(1)
        1
    FROM test e
    WHERE e.PrimaryKey <> p.PrimaryKey
    AND  e.id = p.id
    AND 'test_name' IN (e.name, p.name)
)
1
дададзена

Prerequise: ёсць першасны ключ

select distinct
    p.id
    , p.name
from test p 
where not exists (
    SELECT TOP(1)
        1
    FROM test e
    WHERE e.PrimaryKey <> p.PrimaryKey
    AND  e.id = p.id
    AND 'test_name' IN (e.name, p.name)
)
1
дададзена

Prerequise: ёсць першасны ключ

select distinct
    p.id
    , p.name
from test p 
where not exists (
    SELECT TOP(1)
        1
    FROM test e
    WHERE e.PrimaryKey <> p.PrimaryKey
    AND  e.id = p.id
    AND 'test_name' IN (e.name, p.name)
)
1
дададзена