การแก้ไข: แผนการสอบถามสำหรับกระบวนงานที่เก็บไว้เป็นไม่แคถ้าตัวแปร BLOB ใช้กระบวนงานที่เก็บไว้ และมีใช้ตัวแปรในฟังก์ชันสตริงที่ ใน Microsoft SQL Server 2008 หรือ Microsoft SQL Server 2008 R2

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2380435 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
Microsoft กระจาย Microsoft SQL Server 2008 และ Microsoft SQL Server 2008 R2 แก้ไขเป็นแฟ้มเดียวที่สามารถดาวน์โหลดได้ เนื่องจากการแก้ไขสะสม แต่ละรุ่นที่ใหม่ที่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่มาพร้อมกับ SQL Server 2008 ก่อนหน้าหรือ SQL Server 2008 R2 รุ่นที่แก้ไข
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

พิจารณาสถานการณ์ต่อไปนี้::
  • คุณสร้างกระบวนงานที่เก็บไว้ ใน Microsoft SQL Server 2008 หรือ Microsoft SQL Server 2008 R2
  • กระบวนงานที่เก็บไว้ใช้ตัวแปรวัตถุมีขนาดใหญ่ไบนารี (BLOB)
  • ตัวแปร BLOB ถูกใช้ในฟังก์ชันสายอักขระ
  • คุณใช้กระบวนงานที่เก็บไว้
ในสถานการณ์สมมตินี้ แผนแบบสอบถามสำหรับกระบวนงานที่เก็บไว้เป็นไม่แค

การแก้ไข

ข้อมูลการปรับปรุงที่สะสม

sql Server 2008 Service Pack 1

โปรแกรมแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ก่อนใน Update 10 สะสมสำหรับ SQL Server 2008 Service Pack 1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2279604แพคเกจโปรแกรมปรับปรุงที่สะสม 10 สำหรับ SQL Server 2008 Service Pack 1
หมายเหตุ:เนื่องจาก builds สะสม แต่ละรุ่นใหม่ของโปรแกรมแก้ไขด่วนประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการแก้ไขการรักษาความปลอดภัยทั้งหมดที่มาพร้อมกับ SQL Server 2008 ก่อนหน้าออก Microsoft แนะนำว่า คุณควรพิจารณาถึงการใช้โปรแกรมแก้ไขด่วนรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
970365สร้าง SQL Server 2008 ที่หลังจากที่มีการนำออกใช้ SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 โปรแกรมแก้ไขด่วนถูกสร้างสำหรับการระบุของ sql server เซอร์วิสแพ็ค คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 1 ไปยังการติดตั้ง SQL Server 2008 Service Pack 1 โดยค่าเริ่มต้น hotfix ที่ให้ไว้ใน service pack ของ SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

sql Server 2008 Service Pack 2

โปรแกรมแก้ไขสำหรับปัญหานี้ได้ก่อนออกใน 1 การปรับปรุงที่สะสมสำหรับ SQL Server 2008 Service Pack 2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2289254เด 1 สะสมสำหรับ SQL Server 2008 Service Pack 2
หมายเหตุ:เนื่องจาก builds สะสม แต่ละรุ่นใหม่ของโปรแกรมแก้ไขด่วนประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการแก้ไขการรักษาความปลอดภัยทั้งหมดที่มาพร้อมกับ SQL Server 2008 ก่อนหน้าออก เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้โปรแกรมแก้ไขด่วนรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
2402659สร้าง SQL Server 2008 ที่หลังจากที่มีการนำออกใช้ SQL Server 2008 Service Pack 2

sql Server 2008 R2

โปรแกรมแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ก่อนใน 4 ปรับปรุงที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับนี้แพคเกจโปรแกรมปรับปรุงที่สะสมสำหรับ SQL Server 2008 R2 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2345451สะสม Update แพ็คเกจ 4 สำหรับ SQL Server 2008 R2
หมายเหตุ:เนื่องจาก builds สะสม แต่ละรุ่นใหม่ของโปรแกรมแก้ไขด่วนประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่มาพร้อมกับการก่อนหน้า SQL Server 2008 R2 รุ่นที่แก้ไข เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้โปรแกรมแก้ไขด่วนรุ่นล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
981356สร้าง SQL Server 2008 R2 ที่หลังจากที่มีการนำออกใช้ SQL Server 2008 R2

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน"

ข้อมูลเพิ่มเติม

เมื่อต้องการทบทวนเกิดปัญหานี้ ดำเนินการดังต่อไปนี้:
  1. เรียกใช้รหัสดังต่อไปนี้เพื่อสร้างสองเก็บกระบวนการ ("p_test1" และ "p_test2") "P_test1" ใช้ตัวแปร BLOB และ "p_test2" ใช้เป็นตัวแปร nvarchar(100)
    use tempdb
    go
    if OBJECT_ID('p_test1') is not null drop proc p_test1
    if OBJECT_ID('p_test2') is not null drop proc p_test2
    go
    create proc p_test1
    @s nvarchar(max)
    as
    begin
    select * from sys.objects 
    where name = UPPER(@s)
    end
    go
    create proc p_test2
    @s nvarchar(100)
    as
    begin
    select * from sys.objects 
    where name = UPPER(@s)
    end
    go
    
  2. เรียกใช้โค้ดต่อไปนี้เพื่อล้างแคชกระบวนการ และดำเนินการทั้งสองขั้นตอนที่ถูกเก็บไว้:
    dbcc freeproccache
    go
    exec p_test1 N'abc'
    exec p_test2 N'abc'
    go
    
  3. เรียกใช้โค้ดต่อไปนี้เพื่อตรวจสอบแผนการแคช:
    select object_name(CONVERT(int, a.value)), cp.*
    from sys.dm_exec_cached_plans cp
    cross apply sys.dm_exec_plan_attributes(cp.plan_handle) a
    where cp.objtype = 'Proc'
    and a.attribute = 'objectid'
    
    
หมายเหตุ:ถ้ามี executions จำนวนมากพร้อมกันของกระบวนงานที่เก็บไว้บน Microsoft SQL Server 2008 หรืออินสแตนซ์ที่ Microsoft SQL Server 2008 R2 ชนิดนี้ คุณอาจพบบล็อกที่มีสาเหตุจากการล็อกการคอมไพล์บนอินสแตนซ์

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำอธิบายของ SQL Server การบล็อคที่เกิดจากการล็อกการคอมไพล์ ดูบทความฐานความรู้ของ Microsoft ต่อไปนี้:
263889คำอธิบายของ SQL Server การบล็อคที่เกิดจากการล็อกการคอมไพล์

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันสตริงการ (Transact SQL), แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
ฟังก์ชันสตริงที่ (Transact SQL)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรุ่นให้บริการแบบเพิ่มหน่วยสำหรับ SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
935897มีแบบจำลองให้บริการแบบเพิ่มหน่วยจะพร้อมใช้งานจากทีม SQL Server จะจัดส่งโปรแกรมแก้ไขด่วนสำหรับการรายงานปัญหา
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเค้าร่างตั้งชื่อสำหรับการปรับปรุงใน SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
822499แบบแผนการตั้งชื่อใหม่สำหรับแพคเกจโปรแกรมปรับปรุงซอฟต์แวร์ของ Microsoft SQL Server
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
824684คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft

คุณสมบัติ

หมายเลขบทความ (Article ID): 2380435 - รีวิวครั้งสุดท้าย: 15 พฤศจิกายน 2553 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
Keywords: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2380435 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2380435

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com