คำถามติดแท็ก sql-server

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

1
ฉันจะดูได้อย่างไรว่าแบบสอบถามใช้เวลานานแค่ไหนในการรอการล็อกโดยไม่มีตัวสร้างโปรไฟล์
ฉันกำลังพยายามวิเคราะห์คิวรีที่ใช้เวลานานเป็นระยะ ๆ ฉันสงสัยว่าอาจถูกบล็อกพยายามรับล็อค ฉันไม่มีสิทธิ์ใช้ตัวสร้างโปรไฟล์ในสภาพแวดล้อมที่ประสบปัญหา มีวิธีใดบ้างที่ฉันจะได้รับสถิติว่าแบบสอบถามนี้ถูกบล็อกนานแค่ไหนโดยไม่ต้องใช้ผู้สร้างโปรไฟล์ภายนอก

1
ทำไม SELECT COUNT () แผนการดำเนินการแบบสอบถามรวมตารางเข้าร่วมด้านซ้าย
ใน SQL Server 2012 ฉันมีตารางที่มีฟังก์ชั่นที่มีค่าเมื่อเข้าร่วมกับตารางอื่นฉันต้องนับจำนวนแถวสำหรับ 'ฟังก์ชั่นที่มีค่าของตาราง' เมื่อฉันตรวจสอบแผนการดำเนินการฉันจะเห็นตารางเข้าร่วมด้านซ้าย ทำไม? การเข้าร่วมตารางด้านซ้ายจะมีผลต่อจำนวนแถวที่คืนกลับอย่างไร ฉันคาดหวังว่าโปรแกรม db ไม่จำเป็นต้องประเมินตารางร่วมด้านซ้ายในแบบสอบถามจำนวน count (.. ) Select count(realtyId) FROM [dbo].[GetFilteredRealtyFulltext]('"praha"') แผนการดำเนินการ: ฟังก์ชั่นมูลค่าตาราง: CREATE FUNCTION [dbo].[GetFilteredRealtyFulltext] (@criteria nvarchar(4000)) RETURNS TABLE AS RETURN (SELECT realty.Id AS realtyId, realty.OwnerId, realty.Caption AS realtyCaption, realty.BusinessCategory, realty.Created, realty.LastChanged, realty.LastChangedType, realty.Price, realty.Pricing, realty.PriceCurrency, realty.PriceNote, realty.PricePlus, realty.OfferState, realty.OrderCode, realty.PublishAddress, …

1
เซสชันที่ถูกบล็อกรอด้วย PAGELATCH_ * รอประเภทหรือไม่
แก้ไข: เหตุใดการรายงานเซสชันถูกบล็อก แต่รอด้วยPAGELATCH_*และไม่LCK_M_เกี่ยวข้องกับประเภทการรอ ก่อนหน้านี้ฉันสันนิษฐานว่าเซิร์ฟเวอร์ SQL จะรายงานเฉพาะเซสชันการบล็อกในคอลัมน์บล็อค_session_Idเท่านั้น PAGELATCH_*หากการประชุมที่ถูกบล็อกกำลังรอล็อคตรรกะและไม่ได้อะไรอย่างอื่นเช่น

2
SQL Server เทียบเท่ากับ Oracle USING clause
มี SQL Server 2008 เทียบเท่ากับ USING INDEX clause ใน Oracle หรือไม่? เฉพาะสำหรับการสร้าง: CREATE TABLE c(c1 INT, c2 INT); CREATE INDEX ci ON c (c1, c2); ALTER TABLE c ADD CONSTRAINT cpk PRIMARY KEY (c1) USING INDEX ci; ในเอกสารเซิร์ฟเวอร์ SQL ในดัชนีที่ไม่ซ้ำจะระบุ (เน้นเพิ่ม): มีการใช้ดัชนีที่ไม่ซ้ำกันในวิธีต่อไปนี้: คีย์หลักหรือข้อ จำกัด ที่ไม่ซ้ำกัน เมื่อคุณสร้างข้อ จำกัด คีย์หลักดัชนีคลัสเตอร์ที่ไม่ซ้ำกันในคอลัมน์หรือคอลัมน์ที่ถูกสร้างขึ้นโดยอัตโนมัติหากดัชนีคลัสเตอร์บนโต๊ะไม่ได้อยู่แล้วและคุณไม่ได้ระบุดัชนี nonclustered ที่ไม่ซ้ำกัน …

2
ฉันจะแก้ไขข้อผิดพลาด SSIS Excel Connection Manager 0xC0209303 ได้อย่างไร
ฉันได้สร้างแพ็คเกจ SSIS ที่นำเข้าไฟล์ excel ลงในตาราง SQL Server แพคเกจ SSIS ทำงานโดยไม่มีปัญหาใด ๆ เมื่อฉันเรียกใช้ภายในเครื่องของฉัน แต่เมื่อฉันเรียกใช้บนเซิร์ฟเวอร์ที่มีการกำหนดแพคเกจฉันได้รับข้อผิดพลาดด้านล่าง (จากไฟล์ข้อความที่ฉันส่งออกข้อผิดพลาดไป หลังจากทำการวิจัยคำแนะนำเดียวที่ฉันหาได้คือการตั้งค่าคุณสมบัติ Run64BitRuntime เป็นเท็จซึ่งฉันทำ แต่ก็ยังไม่มีโชค ฉันสงสัยว่านี่คือสิ่งที่ทำให้เกิดข้อผิดพลาดของฉัน แต่เนื่องจากข้อผิดพลาดไม่ได้ระบุสิ่งใดที่เกี่ยวข้องกับ 64 บิต (เช่นกรณีในบทความที่ฉันพบ) ฉันคิดด้วยว่าอาจเป็นเพราะเซิร์ฟเวอร์ไม่มีไดรเวอร์ Excel ที่เหมาะสม แต่ฉันไม่คิดว่าเป็นเช่นนั้นเพราะโดยปกติแล้วข้อความแสดงข้อผิดพลาดจะพูดบางอย่างเกี่ยวกับไดรเวอร์ที่ไม่ได้ลงทะเบียน ขณะนี้ฉันไม่มีสิทธิ์เข้าถึงรีโมตในเซิร์ฟเวอร์ ฉันสามารถอัพโหลดแพคเกจไปยังโฟลเดอร์และจากนั้นแอปพลิเคชันจะทำงานดังนั้นข้อความแสดงข้อผิดพลาดเดียวที่ฉันเห็นคือสิ่งที่อยู่ในบันทึกข้อผิดพลาดข้อความที่ฉันสร้างขึ้น รหัสข้อผิดพลาด DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER การเรียกวิธีการ AcquireConnection ไปยังตัวจัดการการเชื่อมต่อ "Envision" ล้มเหลวด้วยรหัสข้อผิดพลาด 0xC0209303 อาจมีข้อความแสดงข้อผิดพลาดก่อนหน้านี้พร้อมข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่การเรียกใช้เมธอด AcquireConnection ล้มเหลว "Envision" เป็นชื่อของตัวจัดการการเชื่อมต่อ excel ของฉัน ฉันเติมเส้นทางแฟ้ม Excel และสตริงการเชื่อมต่อโดยใช้นิพจน์ นิพจน์สตริงการเชื่อมต่อมีลักษณะดังนี้: "Provider = …

1
ปัญหาประสิทธิภาพการค้นหา SQL แบบเรียกซ้ำ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน4 ปีที่แล้ว นี่เป็นครั้งที่หกที่ฉันพยายามถามคำถามนี้และมันก็สั้นที่สุดเช่นกัน ความพยายามก่อนหน้านี้ทั้งหมดเกิดจากสิ่งที่คล้ายกับโพสต์บล็อกมากกว่าคำถาม แต่ฉันขอยืนยันกับคุณว่าปัญหาของฉันเป็นจริงมันเป็นเรื่องที่เกี่ยวข้องกับเรื่องใหญ่หนึ่งเรื่องและไม่มีรายละเอียดทั้งหมดที่คำถามนี้มีอยู่ ไม่ชัดเจนว่าปัญหาของฉันคืออะไร ดังนั้นที่นี่ไป ... นามธรรม ฉันมีฐานข้อมูลทำให้สามารถจัดเก็บข้อมูลได้อย่างเป็นธรรมชาติและมีคุณสมบัติที่ไม่ได้มาตรฐานหลายอย่างที่กระบวนการทางธุรกิจของฉันต้องการ คุณสมบัติดังต่อไปนี้: การอัปเดต / ลบแบบไม่ทำลายและไม่ปิดกั้นถูกนำไปใช้ผ่านวิธีแทรกอย่างเดียวซึ่งช่วยให้การกู้คืนข้อมูลและการบันทึกอัตโนมัติ (การเปลี่ยนแปลงแต่ละครั้งจะเชื่อมโยงกับผู้ใช้ที่ทำการเปลี่ยนแปลงนั้น) ข้อมูลหลายตัวแปร (อาจมีข้อมูลเดียวกันหลายรุ่น) สิทธิ์ระดับฐานข้อมูล ความสอดคล้องในที่สุดกับข้อกำหนด ACID และสร้าง / ปรับปรุง / ลบรายการที่ปลอดภัย ความสามารถในการย้อนกลับหรือส่งต่อมุมมองข้อมูลปัจจุบันของคุณไปยังจุดใดก็ได้อย่างรวดเร็ว อาจมีคุณสมบัติอื่น ๆ ที่ฉันลืมพูดถึง โครงสร้างฐานข้อมูล ข้อมูลผู้ใช้ทั้งหมดจะถูกเก็บไว้ในItemsตารางเป็นสตริงที่เข้ารหัส JSON ( ntext) การดำเนินการฐานข้อมูลทั้งหมดดำเนินการผ่านสองขั้นตอนการจัดเก็บGetLatestและInsertSnashotอนุญาตให้ดำเนินการกับข้อมูลคล้ายกับวิธีการที่ GIT ดำเนินการกับไฟล์ต้นฉบับ ข้อมูลผลลัพธ์ถูกเชื่อมโยง (รวมเข้าด้วยกัน) ที่ส่วนหน้าลงในกราฟที่เชื่อมโยงอย่างสมบูรณ์ดังนั้นจึงไม่จำเป็นต้องทำการสืบค้นฐานข้อมูลในกรณีส่วนใหญ่ นอกจากนี้ยังสามารถเก็บข้อมูลในคอลัมน์ SQL ปกติแทนที่จะเก็บไว้ในรูปแบบที่เข้ารหัส …

2
คอลัมน์รหัสประจำตัวในดัชนี columnstore
ฉันมีตาราง IMO ที่มีขนาดใหญ่มาก (~ 137 ล้านแถว) ที่มีข้อมูลซ้ำจำนวนมากNULLคอลัมน์จำนวนมากและเช่นนั้น ฉันกำลังพิจารณาการสำรวจนี้โดยใช้ตารางที่มีCOLUMNSTORE INDEXและฉันมีIDENTITYคอลัมน์ในตารางเดิมซึ่งเป็นคอลัมน์เดียวของฉันที่ทุกแถวไม่ซ้ำกัน ฉันควรปล่อยคอลัมน์นี้ออกหรือรวมไว้หรือไม่ ฉันได้อ่านแล้วว่าคุณต้องการรวมแถวทั้งหมดของตารางลงในCOLUMNSTORE INDEXแต่ฉันได้อ่านด้วยว่าผู้สมัครที่ดีที่สุดคือคอลัมน์ที่มีแถวที่ไม่ซ้ำจำนวนมาก นี่เป็นเพียงผู้สมัครที่ไม่ดีสำหรับCOLUMNSTORE INDEX? ฉันใช้ SQL Server 2012 ดังนั้นจึงเป็นคอลัมน์ที่ไม่ใช่คลัสเตอร์ ฉันแค่สำรวจวิธีที่เป็นไปได้ที่ดีกว่าในการจัดเก็บข้อมูลนี้ การปรับปรุงไม่มีอยู่แม้ว่าจะมีการเพิ่มแถวใหม่เป็นระยะ ๆ ผ่านกระบวนการ ELT ดังนั้นฉันคาดว่าจะมีงานบางอย่างเกิดขึ้นที่นั่น ผู้ใช้บางคนขุดข้อมูลนี้และสร้างรายงานจำนวนมากสแกนแถวจำนวนมากนำเซิร์ฟเวอร์ไปสู่การรวบรวมข้อมูลในบางครั้งซึ่งบังคับให้เราถ่ายสำเนาทุกวันไปยังเซิร์ฟเวอร์รอง

1
การกำหนดผลลัพธ์ของโพรซีเดอร์ที่เก็บไว้ให้กับตัวแปร SSIS
ฉันพยายามรับค่าจากโพรซีเดอร์ที่เก็บไว้ในตัวแปร SSIS แล้วทดสอบเพื่อดูว่างาน SSIS สองงานสามารถทำงานได้หรือไม่ถ้าฉันเพิ่มนิพจน์ ตัวอย่างเช่นฉันพยายามใช้โพรซีเดอร์ที่เก็บนี้ : บางทีฉันอาจตั้งค่าคุณสมบัติตัวแปร SSIS ผิดทั้งหมดเพราะฉันยังไม่แน่ใจว่าฉันกำลังทำสิ่งนี้อย่างถูกวิธีหรือไม่สำหรับค่า proc ที่เก็บไว้เพื่อนำเข้าสู่ตัวแปร SSIS โปรดบอกฉันถ้าคุณต้องการ screencaps ของสิ่งอื่นใด นี่คือตัวอย่างของงาน: และนี่คือการแก้ไขข้อ จำกัด ก่อนหน้า screencap: และนี่คือคุณสมบัติสำหรับงานแรก: ฉันต้องการให้มันไปข้างหน้า (หรือล้มเหลว) ตามเงื่อนไขนั้น แต่เมื่อฉันทดสอบกระบวนการจะไหลจากงานแรกไปที่สองโดยไม่คำนึงถึงและแสดงให้ฉันเห็นว่า "เสร็จสมบูรณ์ 100%" สำหรับงานแรกและไม่เกี่ยวกับว่าจะตรวจสอบว่านิพจน์นี้เป็นจริงหรือไม่ ฉันจะทำสิ่งนั้นได้อย่างไรและเกิดอะไรขึ้น? ฉันมีตัวแปรใน SSIS ที่เรียกว่า 'orderCount' เพื่อรับค่าจาก proc ที่เก็บไว้

1
แถวศูนย์กลับมาจากการสอบถาม DMV sys.dm_os_performance_counters
ฉันมีผู้ใช้ที่SQL Server 2014 Standard Edition (RTM)มีSYSADMINบทบาทกับสิทธิ์การดูสถานะเซิร์ฟเวอร์ แต่เมื่อฉันเรียกใช้ DMV sys.dm_os_performance_countersจะไม่มีการบันทึก มีความคิดใดที่ผิดปกติเกี่ยวกับการอนุญาต เอาต์พุตของ @@ เวอร์ชัน: Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 20 ก.พ. 2014 20:04:26 ลิขสิทธิ์ (c) Microsoft Corporation Standard Edition (64 บิต) บน Windows NT 6.3 (รุ่น 9600:) (Hypervisor)

1
ไม่สามารถดูข้อมูลสดบนเซสชันที่ขยายกิจกรรม
ฉันใช้ SQL Server 2014 Developer Edition บนพีซีของฉัน ฉันกำลังพยายามดูข้อมูลในเซสชัน system_health ใน SSMS ฉันได้เชื่อมต่อกับฐานข้อมูลขยายเซิร์ฟเวอร์ / การจัดการ / เหตุการณ์ขยาย / เซสชัน ฉันเห็น AlwaysON_health (หยุดทำงาน) และ system_health (กำลังทำงาน) เมื่อฉันคลิกขวาที่เซสชัน system_health ฉันได้รับข้อผิดพลาดต่อไปนี้: ที่เก็บข้อมูลล้มเหลวในการเริ่มต้นโดยใช้พารามิเตอร์ที่ให้มา (Microsoft.SqlServer.XEventStorage) ไม่พบเซสชันเพิ่มเติมที่ชื่อว่า "system_health" ตรวจสอบให้แน่ใจว่าเซสชันนั้นมีอยู่และเริ่มขึ้นแล้ว (Microsoft SQL Server ข้อผิดพลาด: 25728) ฉันขยาย system_health และดูเป้าหมาย package0.event_file และ package0.ring_buffer หากฉันคลิกขวาที่เป้าหมายและเลือก "ดูข้อมูลเป้าหมาย" ฉันได้รับข้อผิดพลาดนี้: ที่เก็บข้อมูลล้มเหลวในการเริ่มต้นโดยใช้พารามิเตอร์ที่ให้มา (Microsoft.SqlServer.XEventStorage) ไม่สามารถดูฟังก์ชัน 'fn_MSXe_read_event_stream' …

2
NoSQL: ข้อมูลที่ไม่มีโครงสร้างคืออะไร
ขณะนี้เรากำลังใช้ทรัพยากรที่มีอยู่ด้วยโซลูชั่น mssql เซิร์ฟเวอร์ของเรา ขณะนี้เรามีตัวเลือกแบบดั้งเดิมมากมายเกี่ยวกับการย้ายครั้งต่อไปเพื่อรับมือกับโหลด: ซื้อ CPU และ IO เร็วขึ้น แยกลูกค้าบางรายออกเป็นเซิร์ฟเวอร์แยกต่างหาก ย้าย db ไปยังคลัสเตอร์ ทั้งหมดมีราคาแพงทั้งในแง่ของลิขสิทธิ์และฮาร์ดแวร์หรือเวลา ดังนั้นฉันต้องการเพิ่มตัวเลือกอื่นโดยการย้ายทั้งระบบไปยังโซลูชันที่ปรับขนาดได้ซึ่งสัญญาของคาสซานดราเครื่องยนต์ nosql แต่ฉันไม่แน่ใจและไม่มีประสบการณ์กับฐานข้อมูล noSQL ดังนั้นฉันต้องเข้าใจโครงสร้างของข้อมูล "ที่ไม่มีโครงสร้าง" ในแอปพลิเคชันของเราเราจะจัดเก็บข้อมูลที่ผู้ใช้ป้อนในรูปแบบต่างๆเป็นรายการ "คีย์ - ค่า" มีตารางหลักที่มีองค์ประกอบส่วนหัว (เช่นคำสั่งซื้อ) และมีตารางลูกที่มีคู่ค่าคีย์ประกอบไปด้วยเนื้อหาของคำสั่งซื้อ (เช่น Order_Lines) หน่วยธุรกิจที่ชาญฉลาดคำสั่งซื้อและคำสั่งซื้อเป็นหน่วย แต่เนื่องจาก RDBMS พวกเขาจะถูกเก็บไว้ในตารางและจะต้องเข้าร่วมตลอดเวลา ในระหว่างการดำเนินการบางครั้งเราเลือกที่จะโหลดเฉพาะส่วนบน แต่ส่วนใหญ่เราโหลดแถวหลัก + KVP บางส่วนเพื่อแสดงข้อมูลที่เป็นประโยชน์ ตัวอย่างเช่นในรายการภาพรวมเราจะแสดงตัวระบุส่วนหัว + ค่าบางค่าในคอลัมน์สำหรับแต่ละแถว ปรับปรุง: เราเก็บรูปแบบใด ๆ ดังนั้นโดยทั่วไปเราจัดเก็บ "เอกสาร" อย่างไรก็ตามเราต้องจัดเตรียมและค้นหาในรูปแบบเหล่านี้ด้วยค่าใด ๆ การเรียงลำดับ ฯลฯ …

1
dm_exec_describe_first_result_set_for_object สำหรับชุดผลลัพธ์หลายชุด
มีขั้นตอนในการส่งคืนข้อมูลเมตาสำหรับชุดผลลัพธ์ทั้งหมดในกระบวนงานที่เก็บไว้หรือไม่ มีบางอย่างที่เหมือนsys.dm_exec_describe_first_result_set_for_objectกัน แต่สำหรับชุดผลลัพธ์ทั้งหมด ในที่สุดฉันจะต้องการค้นหาข้อมูลเมตาสำหรับทุกชุดผลลัพธ์ในทุกโพรซีเดอร์ที่เก็บในฐานข้อมูล สำหรับตอนนี้ฉันจะตัดสินให้เฉพาะชุดผลลัพธ์ที่sys.dm_exec_describe_first_result_set_for_objectไม่สามารถอธิบายได้ นั่นคือชุดผลลัพธ์ที่ 2, 3 และ Nth ดูที่การใช้ SQLCLR เพื่อทำสิ่งนี้ตอนนี้: วิธีบันทึกผลลัพธ์ของกระบวนงานที่มีชุดผลลัพธ์มากกว่าหนึ่งชุด - การทดสอบหน่วย DB สำหรับ SQL Server - ResultSetFilter.cs

3
zero-or-one ถึง zero-or-one
ฉันจะสร้างความสัมพันธ์แบบ zero-or-one ถึง zero-or-one ใน SQL Server เป็นวิธีที่เป็นธรรมชาติที่สุดได้อย่างไร มีตาราง 'อันตราย' ที่แสดงอันตรายบนไซต์ มีตาราง 'งาน' สำหรับงานที่ต้องทำบนไซต์ งานบางอย่างเพื่อแก้ไขอันตรายไม่มีงานใดที่สามารถจัดการกับอันตรายหลายอย่างได้ อันตรายบางอย่างมีหน้าที่แก้ไข ไม่มีอันตรายใด ๆ ที่เกี่ยวข้องกับภารกิจทั้งสองได้ ด้านล่างเป็นสิ่งที่ดีที่สุดที่ฉันนึกได้: CREATE TABLE [dbo].[Hazard]( [HazardId] [int] IDENTITY(1,1) NOT NULL, [TaskId] [int] NULL, [Details] [varchar](max) NULL, CONSTRAINT [PK_Hazard] PRIMARY KEY CLUSTERED ( [HazardId] ASC )) GO ALTER TABLE [dbo].[Hazard] WITH CHECK ADD …

1
บริการเซิร์ฟเวอร์ SQL ว่างในการกำหนดค่าเซิร์ฟเวอร์ SQL
เมื่อฉันอัพเกรดจาก Windows 8.1 เป็น Windows 10 ฉันสังเกตว่า SQL Server Services ใน SQL Server Configuration Manager ว่างเปล่า SQL Server ยังคงทำงานได้อย่างสมบูรณ์แบบในขณะนี้ มีการติดตั้ง SQL Server 2014 บนเครื่องท้องถิ่น ฉันได้อ่านบล็อก - https://www.mssqltips.com/sqlservertip/2492/why-is-sql-server-configuration-manager-missing-services/และ http://www.sqlservercentral.com/Forums/Topic1469391- 1292-1.aspxและยังไม่สามารถแก้ไขปัญหาได้ ฉันสำรองฐานข้อมูลถอนการติดตั้งและติดตั้งใหม่แล้ว แต่โหนดยังคงว่างเปล่า ฉันควรทำอย่างไรดี? อัปเดตด้วยภาพหน้าจอ หน้าจอตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

2
หน่วยความจำสูงสุดของ sql server รวมถึง SSIS หรือไม่
ฉันได้ติดตั้ง sql server 2 อินสแตนซ์และ SSIS บนเซิร์ฟเวอร์ต่อไปนี้ โปรดสังเกตว่า RAM มีค่าเกือบ 384 GB และนี่คือการตั้งค่าหน่วยความจำสูงสุดและต่ำสุดที่ฉันใช้กับ 2 อินสแตนซ์ของฉัน ฉันสมมติว่าทั้งสองอินสแตนซ์จะใช้ทรัพยากรในปริมาณที่เท่ากันหากเป็นเช่นนั้น 184,320 MB ซึ่งเป็น 180 GB เป็นหมายเลขเริ่มต้นที่ดีในการตั้งค่าหน่วยความจำของฉัน ฉันจะจัดสรรหน่วยความจำให้กับ SSIS เท่าไหร่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.