Я пытаюсь выяснить более эффективный способ написания запроса, который использует моя компания. В настоящее время мы используем LEFT JOINs, но я чувствую, что это может быть плохой подход к этому.Оптимизация запроса с помощью JOINs
Как вы относитесь к этому? Я пытаюсь ознакомиться с EXISTS и CROSS APPLY. Возможно, это ситуация, когда я должен использовать эти типы утверждений.
SELECT p.people_id ,
p.date_created ,
p.last_name ,
p.first_name ,
p.middle_name ,
p.known_as ,
p.ssn ,
p.home_phone ,
p.work_mobile ,
p.other_phone ,
p.display_email ,
s.source ,
ISNULL(p.address_1, '') AS address_1 ,
ISNULL(p.address_2, '') AS address_2 ,
p.city ,
p.state ,
p.zip_code ,
pec.emergency_name ,
pec.work_phone ,
pec.emergency_relationship ,
jc.job_category ,
et.education_type ,
pp.part_time_only ,
pp.perm_job ,
pp.temp_job ,
p.applied_online ,
p.owner_division_id ,
p.role_id ,
p.older_18 ,
p.disclaimer ,
SUBSTRING(p.ssn, 6, 4) AS L4_ssn ,
pp.custom_code_4 AS job_title ,
p.external_id ,
p.last4 ,
p.resume_category ,
rc.resume_category_description ,
p.home_phone_perm ,
p.work_mobile_perm
FROM people p
LEFT OUTER JOIN lkp_resume_category rc ON p.resume_category = rc.resume_category_id
LEFT OUTER JOIN people_profile pp ON pp.people_id = p.people_id
LEFT OUTER JOIN companies_job_titles cjt ON cjt.job_title_id = pp.job_title_1
LEFT OUTER JOIN lkp_job_categories jc ON jc.job_category_id = pp.job_class_id
LEFT OUTER JOIN lkp_education_types et ON et.education_type_id = pp.education_id
LEFT OUTER JOIN lkp_sources s ON pp.source_id = s.source_id
LEFT OUTER JOIN people_emergency_contacts pec ON p.people_id = pec.people_id
WHERE (p.role_id <= 4)
Не похож на «INNER JOINs». Но, глядя на план выполнения, вы должны посмотреть на индексацию своих таблиц. – Magnus
Я неправильно напечатал это. Спасибо, что указали. – HKImpact