Score:-1

SQL - วิธีหลีกเลี่ยงการอ่านค่าจากคอลัมน์ XML เนื่องจากปัญหาด้านประสิทธิภาพ

ธง mx

ฉันยังใหม่กับ SQL คุณช่วยแนะนำฉันได้ไหมว่าฉันจะปรับปรุงด้านล่างโค้ด SQL ได้อย่างไร ฉันสังเกตเห็นการใช้ SQL profiler - การดำเนินการอ่าน XML ใช้เวลามากเกินไป

โปรดแจ้งให้เราทราบว่าฉันจะเขียนโค้ดด้านล่างใหม่ได้อย่างไร เพื่อให้ฉันเห็นการปรับปรุงประสิทธิภาพ

ที่นี่ - edata คือคอลัมน์ XML และรหัสด้านล่างเป็นส่วนหนึ่งของขั้นตอนการจัดเก็บหลักของฉัน เฉพาะรหัสด้านล่างเท่านั้นที่มีปัญหากับประสิทธิภาพ และตาราง erequest ได้รับการจัดทำดัชนีแล้ว

  ประกาศ @SFD ตาราง 
  ( 
     และ BIGINT, 
     eAmount ทศนิยม (12, 2), 
     วันที่ วันที่
  ) 


แทรกลงใน @SFD
เลือก tr.etid
        tr.edata.value('(EData/Amount)[1]', 'DECIMAL(12, 2)') eAmount,
        tr.edata.value('(EData/DrawDate)[1]','date') eDate
จาก dbo.erequest tr
โดยที่ tr.accountid = @AccountId 

ในข้อความค้นหาด้านบน - บรรทัดต่อไปนี้ใช้เวลามากเกินไป

**tr.edata.value('(EData/Amount)[1]', 'DECIMAL(12, 2)') eAmount,
tr.edata.value('(EData/DrawDate)[1]','date') eDate**

กรุณาแนะนำฉัน ฉันจะเขียนบรรทัดด้านบนในแบบสอบถาม sql หลักใหม่ได้อย่างไร เพื่อให้ฉันเห็นการปรับปรุงประสิทธิภาพ

กรุณาค้นหาแบบสอบถามด้านล่างเพื่อเติมข้อมูลตาราง:

สร้างคำขอตาราง
(
และ BIGINT,
แก้ไขข้อมูล XML,
รหัสบัญชี INT
)

INSERT INTO คำขอ (etid,edata,accountid) ค่า (2145124897,
'<ข้อมูล>
  <CardHolderName>ABCFDE</CardHolderName>
  <หมายเลขบัตร>K6011</หมายเลขบัตร>
  <จำนวนเงิน>555.17</จำนวนเงิน>
  <DrawDate>2022-05-18</DrawDate>
  <CurrencyCode>USD</CurrencyCode>
</edata>',10)

INSERT INTO คำขอ (etid,edata,accountid) ค่า (2145124897,
'<ข้อมูล>
  <CardHolderName>ABCFDE</CardHolderName>
  <หมายเลขบัตร>K6011</หมายเลขบัตร>
  <จำนวนเงิน>555.17</จำนวนเงิน>
  <DrawDate>2022-05-18</DrawDate>
  <CurrencyCode>USD</CurrencyCode>
</edata>',20)

INSERT INTO คำขอ (etid,edata,accountid) ค่า (2145124897,
'<ข้อมูล>
  <CardHolderName>ABCFDE</CardHolderName>
  <หมายเลขบัตร>K6011</หมายเลขบัตร>
  <จำนวนเงิน>555.17</จำนวนเงิน>
  <DrawDate>2022-05-18</DrawDate>
  <CurrencyCode>USD</CurrencyCode>
</edata>',30)

INSERT INTO คำขอ (etid,edata,accountid) ค่า (2145124897,
'<ข้อมูล>
  <CardHolderName>ABCFDE</CardHolderName>
  <หมายเลขบัตร>K6011</หมายเลขบัตร>
  <จำนวนเงิน>555.17</จำนวนเงิน>
  <DrawDate>2022-05-18</DrawDate>
  <CurrencyCode>USD</CurrencyCode>
</edata>',12)

INSERT INTO คำขอ (etid,edata,accountid) ค่า (2145124897,
'<ข้อมูล>
  <CardHolderName>ABCFDE</CardHolderName>
  <หมายเลขบัตร>K6011</หมายเลขบัตร>
  <จำนวนเงิน>555.17</จำนวนเงิน>
  <DrawDate>2022-05-18</DrawDate>
  <CurrencyCode>USD</CurrencyCode>
</edata>',16)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา