หนึ่งในผลกระทบที่ใหญ่ที่สุดต่อการใช้ทรัพยากรสำหรับ Azure SQL DB คือการดึงข้อมูลซ้ำโดยเลเยอร์แอปพลิเคชัน ไม่ว่าการสืบค้นเหล่านั้นดำเนินการเร็วแค่ไหนในการเรียกขั้นตอนเดียวกันหรือการออกคำสั่ง SQL เดียวกันหลายร้อย พัน หรือล้านครั้งต่อวันก็สามารถสร้างความเสียหายให้กับประสิทธิภาพของฐานข้อมูลได้ การเสียชีวิตจากบาดแผลนับพันครั้งสามารถทำให้ระบบต้องคุกเข่าลงได้อย่างง่ายดาย บางครั้งเป็นเรื่องยากสำหรับ DBA ที่จะแก้ไขปัญหาเหล่านี้อย่างจริงจัง เนื่องจากการดำเนินการตามคำสั่งเกิดขึ้นเร็วมาก โดยไม่ได้แสดงในเครื่องมืออย่าง sp_whoisactive ด้วยซ้ำ จนกว่าคุณจะเริ่มเข้าใจสิ่งต่างๆ เช่น Query Performance Insights หรือ Query Store คุณจึงจะเริ่มมองเห็นปัญหาที่แท้จริง
พอร์ทัล Azure ป>


SSMS Query จัดเก็บคำค้นหาที่ใช้งานมากที่สุดพร้อมเมตริกนับการดำเนินการ ป>


คำถามคือคุณจะต่อสู้กับปัญหานี้อย่างไร? โค้ดได้รับการปรับแต่งอย่างละเอียดและทำงานด้วยประสิทธิภาพสูงสุด เพียงแต่ปริมาณการเรียกแอปพลิเคชันเท่านั้นที่ทำให้เกิดปัญหา คำตอบหนึ่งคือ Azure Cache สำหรับ Redis
Azure Cache สำหรับ Redis คืออะไร ป>
กล่าวง่ายๆ ก็คือเป็นที่เก็บข้อมูลแคชหน่วยความจำเฉพาะที่แอปพลิเคชันต่างๆ ภายในหรือภายนอก Azure สามารถเข้าถึงได้โดยอิงจาก Redis แบบโอเพ่นซอร์ส ช่วยให้คุณสามารถโหลดข้อมูลลงในที่เก็บข้อมูลในหน่วยความจำ อ่านได้โดยตรงจากนั้น และลดจำนวนการเรียกไปยังฐานข้อมูลของคุณ การวางข้อมูลลงในเลเยอร์แคชนี้จะป้องกันไม่ให้แอปพลิเคชันต้องทำการเรียกข้อมูลซ้ำแล้วซ้ำอีก สิ่งนี้สามารถปรับปรุงประสิทธิภาพของฐานข้อมูลได้อย่างมาก ลดเวลาแฝง และเพิ่มทรัพยากรสำหรับการร้องขอข้อมูลอื่นๆ โดยการย้ายโหลดประสิทธิภาพไปที่แคชและอยู่ห่างจากเลเยอร์ฐานข้อมูล สิ่งนี้จะต้องมีการเปลี่ยนแปลงรหัสแอปพลิเคชันของคุณ อย่างไรก็ตาม มันสามารถเพิ่มประสิทธิภาพฐานข้อมูลได้จริงๆ คุณสามารถดูตัวอย่างแอปที่ค่อนข้างซับซ้อนได้ที่นี่ในเอกสาร Microsoft
สิ่งนี้ไม่เพียงแต่เป็นการเพิ่มประสิทธิภาพการทำงานเท่านั้น แต่ยังรวมถึงตัวเงินด้วยเช่นกัน ผลลัพธ์ที่ได้อาจทำให้คุณสามารถปรับขนาดฐานข้อมูล Azure SQL ลงได้ เนื่องจากการใช้ทรัพยากรของคุณจะลดลง
การเริ่มต้น ป>
สร้างทรัพยากร ภายใต้ฐานข้อมูล ให้เลือก Azure Cache สำหรับ Redis

ให้ความสนใจกับตัวเลือกประเภทแคช อย่าลืมคลิกลิงก์ไปยังระดับราคาเพื่อให้คุณสามารถเลือกระดับที่ถูกต้องสำหรับสภาพแวดล้อมของคุณได้ ในกรณีนี้ ฉันกำลังเลือกอันที่ถูกที่สุด นั่นคือ Basic C0 ซึ่งให้แคชฉันเพียง 250 MB แต่ประมาณว่าอยู่ที่ 16 ดอลลาร์ต่อเดือน ส่วนแคชที่ใหญ่กว่าอาจมีราคาสูงขึ้นเล็กน้อย

สำหรับระบบเครือข่าย คุณจะต้องเลือกปลายทางสาธารณะหรือส่วนตัว จากนั้นเลือกถัดไป

ตอนนี้เลือกเวอร์ชัน Redis ที่คุณต้องการ โปรดทราบว่ามีเวอร์ชัน 6 ในหน้าตัวอย่าง ถัดไปจะนำคุณไปยังตัวเลือกแท็ก ซึ่งฉันข้ามไป เพราะฉันไม่จำเป็นต้องแท็กทรัพยากรของฉัน สุดท้ายนี้ เราจะตรวจสอบและสร้างทรัพยากร ตอนนี้เรามีทรัพยากร Redis Cache ที่สร้างขึ้นแล้ว ยังมีขั้นตอนอีกมากมายที่ต้องทำเพื่อให้สามารถใช้งานได้ จัดเก็บข้อมูลในนั้น และเข้าถึงผ่านแอปพลิเคชันของคุณ ฉันจะฝากขั้นตอนเหล่านั้นไว้กับคุณ ในโพสต์นี้ ฉันแค่อยากจะแสดงให้คุณเห็นว่าจะหามันได้ที่ไหนในพอร์ทัลและจะสร้างมันได้อย่างไร
สรุป
หากคุณทำงานในสภาพแวดล้อมที่มีการโทรข้อมูลซ้ำหลายพันครั้งต่อชั่วโมง นี่อาจเป็นแหล่งข้อมูลที่ดีเยี่ยมสำหรับคุณในการพิจารณา ฉันขอแนะนำอย่างยิ่งให้คุณเพิ่ม Azure Cache สำหรับ Redis ลงในชุดเครื่องมือปรับแต่งประสิทธิภาพของคุณ คุณสามารถค้นหาข้อมูลทั้งหมดที่คุณต้องการเพื่อดำเนินการตามกระบวนการต่อไปได้ที่นี่ อย่าลืมอ่านเรื่องความปลอดภัยทั้งหมดที่ต้องพิจารณาด้วย มีเอกสารที่เป็นประโยชน์มากมายภายในเอกสาร Microsoft ซึ่งสามารถพบได้ที่นี่เช่นกัน