คำถามติดแท็ก postgresql

PostgreSQL ทุกรุ่น เพิ่มแท็กเฉพาะรุ่นเพิ่มเติมเช่น postgresql-11 หากบริบทนั้นสำคัญ

2
การเพิ่มพื้นที่ว่างในดิสก์หลังจากฐานข้อมูลตก
ฉันกำลังทำงานกับระบบ dev และฉันได้รับการกู้คืนไปยังฐานข้อมูลพูดว่า "foo" ซึ่งฉันใช้เพื่อจุดประสงค์ด้านการพัฒนา ขณะที่ฉันกำลังทำงานผ่าน kinks ฉันเพิ่งเรียกใช้ DROP DATABASE foo อย่างไรก็ตามฉันรู้ได้อย่างรวดเร็วว่าฉันกินพื้นที่ทั้งหมดในดิสก์ของฉัน อึ. VACUUM FULL จากฐานข้อมูลแบบลอจิคัลอื่นหรือไม่เพิ่มพื้นที่ว่างจากฐานข้อมูลที่ฉันทิ้งไว้ก่อนหน้านี้ (foo) ฉันลองสิ่งนี้จากฐานข้อมูลเชิงตรรกะที่แตกต่างกันและมีการเรียกคืนพื้นที่ว่าง แต่ฉันไม่คิดว่ามันเพียงพอที่จะอธิบายการเรียกฐานข้อมูล CREATE DATABASE / DROP DATABASE ทั้งหมดที่ฉันทำ มันอาจมีเพียง VACUUM'ed ฐานข้อมูลเชิงตรรกะที่ฉันวิ่งมา จะต้องมีวิธีในการเรียกคืนพื้นที่นั้นโดยไม่ต้องดำเนินการฐานข้อมูลทั้งหมดหรือไม่ แก้ไข ดังนั้นผมจึง reinitialized ฐานข้อมูลจากการสำรองข้อมูลประมาณต่อไปนี้ขั้นตอนเหล่านี้ หลังจากการคืนค่าฉันได้เรียกคืนพื้นที่ว่างบนดิสก์เป็นตัน! วิธีนี้ใช้ได้ผลในตอนนี้ แต่ความช่วยเหลือใด ๆ เกี่ยวกับวิธีล้างฐานข้อมูลที่ถูกทิ้งจะยังคงมีประโยชน์ แก้ไข 2 ดังนั้นฉันจึงพยายามรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้ ... นี่คือสิ่งที่ฉันคิดขึ้นมาเป็นตัวอย่าง: Initial partition size: Size Used Avail Use% …

1
ปิดใช้งานคอมมิชชันที่ชัดเจนใน JDBC ตรวจจับใน SQL หรือทำให้ฐานข้อมูลอยู่ในสถานะอ่านอย่างเดียว
พื้นหลัง : ฉันกำลังทำงานในhttp://sqlfiddle.com (เว็บไซต์ของฉัน) และกำลังพยายามป้องกันไม่ให้มีการละเมิดวิธีใดวิธีหนึ่ง ฉันหวังว่าด้วยการถามเกี่ยวกับปัญหาที่ฉันกำลังพูดถึงอยู่ในปัจจุบันฉันไม่ได้ตั้งใจทำให้การละเมิดที่อาจเกิดขึ้นแย่ลงโดยไม่ได้ตั้งใจ แต่คุณจะทำอย่างไร ฉันเชื่อใจพวกคุณ ฉันต้องการป้องกันไม่ให้ผู้ใช้ออกการเรียก 'ส่งสัญญาณ' อย่างชัดเจนภายในบล็อคธุรกรรม จากบริบทของ SQL Fiddle บล็อกธุรกรรมคือรหัสที่เรียกใช้งานบนแผงด้านขวา โดยทั่วไปฉันจะวนซ้ำและดำเนินการรายการคำสั่ง plaintext SQL และฉันต้องการให้แน่ใจว่าการเปลี่ยนแปลงทั้งหมดที่ทำจะถูกย้อนกลับในตอนท้ายของแบทช์ โดยปกติการเปลี่ยนแปลงของพวกเขาจะได้รับการย้อนกลับ แต่บางครั้งก็มีคำสั่ง 'กระทำ' ที่ชัดเจนภายในข้อความและแน่นอนว่าการย้อนกลับของฉันจะไม่ทำงาน ความมุ่งมั่นที่ชัดเจนนี้มีแนวโน้มมากจากผู้ใช้ที่พยายามจะทำลาย schema บน SQL Fiddle ดังนั้นคนอื่น ๆ ที่ทำงานกับมันจะเห็นข้อผิดพลาด ผลลัพธ์หลักที่ต้องการ : ฉันต้องการปิดใช้งานการกระทำที่ชัดเจนในระดับ JDBC ถ้าเป็นไปได้ นี่เป็นเพราะฉันต้องสนับสนุนผู้ขายแบ็กเอนด์ฐานข้อมูลหลายคนและแน่นอนว่าแต่ละคนมีนิสัยใจคอในระดับต่ำ ตัวเลือกสำรอง : หากไม่สามารถกำหนดค่า JDBC เพื่อปิดใช้งานการกระทำที่ชัดเจนได้ฉันจะเปิดให้มีการตรวจหาการกระทำที่ชัดเจนในขณะประมวลผลชุดข้อมูลสำหรับแบ็กเอนด์ต่อไปนี้: SQL Server, Oracle, MySQL และ PostgreSQL สำหรับ SQL …

1
การตรวจสอบความสมบูรณ์ของไฟล์ฐานข้อมูล PostgreSQL
เมื่อใช้ระบบฐานข้อมูล PostgreSQL ฉันจะรู้ได้อย่างไรว่าฐานข้อมูลโดยรวมของฉันมีความสมบูรณ์ 100% โดยพื้นฐานแล้วฉันจะรู้ได้อย่างไรว่าไฟล์ข้อมูลและหน้าเว็บของฉันนั้นดี 100% โดยไม่มีความเสียหายหรือไม่ ในโลกของ Microsoft SQL Server มีคำสั่งให้คุณสามารถใช้งาน DBCC CHECKDB ที่จะบอกคุณว่ามีปัญหาหรือไม่ นี่คือลิงค์ถ้าคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง DBCC CHECKDB (Transact-SQL) ฉันเป็นคนซื่อสัตย์ฐานข้อมูลหวาดระแวงใจ (ซึ่งทุกคนที่ทำงานกับฐานข้อมูลในบทบาทประเภท DBA ควร) และสิ่งประเภทนี้ทำให้ฉันนอนหลับได้ยากในเวลากลางคืน อรรถประโยชน์เช่นนี้เป็นสิ่งที่ต้องมี! การค้นหาใน google พบว่ามีความพยายามในการใช้เครื่องมือเช่นนี้และในความคิดของฉันเว้นแต่ว่าเป็นเครื่องมือที่ได้รับการยอมรับอย่างเป็นทางการจากโครงการ PostgreSQL ฉันจะไม่ไว้ใจสิ่งที่สำคัญนี้ ต่อไปนี้เป็นลิงค์สำหรับคนที่ถามคำถามคล้าย ๆ กันกับสิ่งที่ฉันพิจารณาว่าไม่มีคำตอบที่ชัดเจน และในความคิดของฉันแสดงว่า PostgreSQL จำเป็นต้องมีเครื่องมือบางอย่างที่ Oracle และ Microsoft SQL Server ดูเหมือนจะมี ลิงค์แรกเป็นสิ่งที่น่าสนใจที่สุดที่ฉันพบในหัวข้อนี้ ฉันคิดว่าความคิดเห็นเกี่ยวกับบทความที่อาจรวมถึงสถานะ: "Postgres ค่อนข้างง่อยเมื่อมันมาถึงการระบุความเสียหายของฐานข้อมูลและซ่อมมันวิธีเดียวที่จะตรวจสอบได้คือการทิ้งฐานข้อมูลหรือเลือก * จากทุกตารางในฐานข้อมูล ." PostgreSQL …

4
ไม่มี NULLs แต่ลำดับไบต์ไม่ถูกต้องสำหรับการเข้ารหัส“ UTF8”: 0x00
ฉันใช้เวลา 8 ชั่วโมงที่ผ่านมาพยายามนำเข้าผลลัพธ์ของ 'mysqldump --compatible = postgresql' ลงใน PostgreSQL 8.4.9 และฉันได้อ่านอย่างน้อย 20 กระทู้ที่แตกต่างกันที่นี่และที่อื่น ๆ เกี่ยวกับปัญหาเฉพาะนี้แล้ว แต่ไม่พบ คำตอบที่ใช้งานได้จริงที่ทำงาน ทิ้งข้อมูล MySQL 5.1.52: mysqldump -u root -p --compatible=postgresql --no-create-info --no-create-db --default-character-set=utf8 --skip-lock-tables rt3 > foo เซิร์ฟเวอร์ PostgreSQL 8.4.9 เป็นปลายทาง กำลังโหลดข้อมูลด้วย 'psql -U rt_user -f foo' กำลังรายงาน (ส่วนใหญ่เป็นหนึ่งในตัวอย่าง): psql:foo:29: ERROR: invalid byte sequence for …

3
SQL อ่าน XML จากไฟล์ลงในฐานข้อมูล PostgreSQL
ฉันจะเขียน SQL เพื่ออ่านไฟล์ XML ลงในXMLค่าPostgreSQL ได้อย่างไร PostgreSQL มีประเภทข้อมูล XMLดั้งเดิมพร้อมXMLPARSEฟังก์ชันแยกวิเคราะห์สตริงข้อความให้เป็นประเภทนั้น นอกจากนี้ยังมีวิธีการอ่านข้อมูลจากระบบไฟล์ COPYคำสั่งอื่น ๆ ในกลุ่ม แต่ฉันไม่เห็นวิธีการเขียนคำสั่ง PostgreSQL SQL ดั้งเดิมเพื่ออ่านเนื้อหาจากรายการระบบไฟล์และใช้เพื่อเติมXMLค่า ฉันจะทำสิ่งนี้ได้อย่างไร
12 postgresql  xml 

3
ฉันจะแสดงละติจูดและลองจิจูดใน Postgres ได้อย่างไรโดยไม่ต้องใช้ PostGIS
ฉันจะแสดงละติจูดและลองจิจูดใน Postgres ได้อย่างไรโดยไม่ต้องใช้ PostGIS ระบบที่ฉันใช้ไม่อนุญาตให้ใช้ SQL ผ่านดังนั้นฉันไม่สามารถใช้ POSTGIS ได้
12 postgresql 

1
PostgreSQL: พื้นที่ว่างในดิสก์ไม่ได้ถูกปล่อยออกหลังจาก TRUNCATE
ฉันมีTRUNCATEตารางขนาดใหญ่ (~ 120Gb) ที่เรียกว่าfiles: TRUNCATE files; VACUUM FULL files; ขนาดตารางคือ 0 แต่ไม่มีพื้นที่ดิสก์ออก แนวคิดใดบ้างที่จะเรียกคืนพื้นที่ดิสก์ที่หายไป ปรับปรุง: พื้นที่ว่างในดิสก์ได้รับการปล่อยตัวหลังจาก ~ 12 ชั่วโมงโดยไม่มีการดำเนินการใด ๆ ในด้านของฉัน ฉันใช้เซิร์ฟเวอร์ Ubuntu 8.04


2
Postgresql 8.3: จำกัด การใช้ทรัพยากรต่อแบบสอบถาม
ฉันใช้PostgreSQL 8.3 + PostGIS 1.3ในการจัดเก็บข้อมูลเชิงพื้นที่ในอูบุนตู 8.04 Hardy PostGIS รุ่นนี้มีข้อผิดพลาดเมื่อทำการคำนวณbuffer()บนเซ็กเมนต์ที่ซับซ้อนมากซึ่งทำให้เคียวรีใช้หน่วยความจำมากขึ้นเรื่อย ๆ จนกว่าเครื่องทั้งหมดจะติด ฉันกำลังมองหากลไก PostgreSQL ที่สามารถ: จำกัด การใช้หน่วยความจำ (และอาจเป็นทรัพยากรอื่น ๆ ) ที่ใช้โดยแบบสอบถามที่เฉพาะเจาะจง หยุดคิวรีที่มีเวลาดำเนินการเกินเกณฑ์ที่กำหนดโดยอัตโนมัติ ความคิดใด ๆ

3
วิธีการนำเอนทิตีไปใช้ด้วยจำนวนแอตทริบิวต์สูงสุดที่ไม่รู้จัก?
ฉันกำลังออกแบบโปรแกรมจำลองเบสบอลและฉันพบปัญหาในการออกแบบสคีบ็อกซ์ ปัญหาที่ฉันมีคือฉันต้องการติดตามจำนวนการทำคะแนนในแต่ละโอกาส วิธีที่ฉันทำในโปรแกรมจริงคือการใช้อาร์เรย์แบบไดนามิกที่เพิ่มขึ้นสำหรับการเล่นแต่ละโอกาส สำหรับผู้ที่ไม่คุ้นเคยกับเกมเบสบอลเกมมักจะมีเก้าโอกาสนานเว้นแต่เกมจะถูกผูกไว้เมื่อสิ้นสุดโอกาสที่ 9 เกมเบสบอลจึงมีความยาวไม่บึกบึนซึ่งหมายความว่าฉันไม่สามารถออกแบบฐานข้อมูลให้มีเพียง 9 คอลัมน์สำหรับการวิ่งที่ทำคะแนนในแต่ละโอกาส (ในทางเทคนิค 18 (9-9 อินนิ่ง * 2 ทีม) แนวคิดหนึ่งที่ฉันมีคือทำให้อนุกรมอาร์เรย์ และเข้ารหัสเป็น Base64 ก่อนเก็บไว้ในฐานข้อมูลอย่างไรก็ตามฉันไม่รู้ว่านี่เป็นเทคนิคที่ดีในการใช้หรือไม่และฉันสงสัยว่าใครมีความคิดที่ดีกว่า ในกรณีที่มีความสำคัญฐานข้อมูลที่ฉันกำลังพัฒนาคือ PostgreSQL ข้อเสนอแนะใด ๆ ที่ชื่นชมอย่างมาก! ขอบคุณ!

4
เป็นไปได้หรือไม่ว่าคำสั่งนั้นจะไม่รับประกันสำหรับตารางที่ซ้ำซ้อนนี้
ฉัน stumbled เมื่อคำถามนี้ในการสนทนา Twitter กับ Lukas เอ๊ด แม้ว่าพฤติกรรมที่ถูกต้องจะใช้คำสั่งย่อย ORDER BY กับการสืบค้นนอกสุดเนื่องจากที่นี่เราไม่ได้ใช้ DISTINCT, GROUP BY, JOIN หรือส่วนคำสั่ง WHERE ใด ๆ ในการค้นหานอกสุดทำไม RDBMS ถึงไม่ผ่าน ข้อมูลที่เข้ามาในขณะที่มันถูกจัดเรียงตามแบบสอบถามภายใน? SELECT * FROM ( SELECT * FROM table ORDER BY time DESC ) AS t เมื่อเรียกใช้ตัวอย่างนี้บน PostgreSQL อย่างน้อยคุณจะได้รับแผนการดำเนินการเดียวกันสำหรับทั้งแบบสอบถามภายในและตัวอย่างตารางที่ได้รับนี้รวมถึงชุดผลลัพธ์เดียวกัน ดังนั้นฉันจะสมมติว่าผู้วางแผนจะยกเลิกการสืบค้นนอกสุดเพียงเพราะซ้ำซ้อนหรือเพียงแค่ส่งผ่านผลลัพธ์จากตารางด้านใน ไม่มีใครคิดว่านี่อาจเป็นกรณีหรือไม่

1
ฉันจะย้ายพื้นที่ตาราง PostgreSQL ได้อย่างไร
มีวิธีที่จะย้ายร่างกาย PostgreSQL 9.3 ตารางจาก/old/dirไป/new/dir? ฉันต้องการเพียงแค่mvไดเรกทอรีและบอกว่า PostgreSQL /new/dirตารางอยู่ในขณะนี้อยู่ที่ ดูเหมือนว่าALTER TABLESPACEให้คุณเปลี่ยนชื่อได้เท่านั้น ฉันต้องการหลีกเลี่ยงการสร้างพื้นที่ตารางใหม่และย้ายฐานข้อมูลไป ฉันคิดว่าจะเป็นกระบวนการคัดลอกช้าที่ต้องใช้เวลาและพื้นที่ดิสก์ ฉันยังต้องการที่จะหลีกเลี่ยง symlinking ไป/old/dir/new/dir

4
หลีกเลี่ยงวิธีการดึงข้อมูล "แถวต่อแถว" เมื่อจัดการกับคอลัมน์ LOB ต้นทาง
ฉันมีแหล่งฐานข้อมูล PostgreSQL ดั้งเดิม (ODBC) ที่ฉันพยายามโยกย้ายไปยัง SQL Server schema ใหม่โดยใช้ SSIS ฉันได้รับคำเตือนว่า: มีการบังคับใช้วิธีการดึงข้อมูล 'Row by Row' เนื่องจากตารางมีคอลัมน์ LOB เนื้อหาคอลัมน์คือ LOB ไม่มีคอลัมน์ใดต้องเป็น LOB มีบางประเภทที่เป็นข้อความ แต่สามารถใส่ได้อย่างง่ายดายภายใน varchar (สูงสุด) แม้จะเป็นคนแปลกหน้า แต่ส่วนใหญ่แล้วเป็น varchars แต่ดูเหมือนว่ามีอะไรมากกว่า varchar (128) ที่กำลังได้รับการปฏิบัติเสมือนว่าเป็น LOB (เป็นคุณสมบัติล่วงหน้าประเภทของข้อมูลคือ DT_NTEXT) เหตุการณ์ฉันพยายามทำคำสั่ง SQL ด้วยตนเองซึ่งฉันได้ casted สตริงทุกประเภทให้เป็น varchar ที่มีความยาวที่เหมาะสมในคำสั่ง select และพวกเขายังคงถูกตั้งค่าเป็น DT_NTEXT ในแหล่ง ODBC ฉันไม่ใช่ DBA ดังนั้นจึงเป็นไปได้ทั้งหมดที่ฉันจะทำอะไรที่โง่จริงๆ …

2
สแกนดัชนีช้าในตารางขนาดใหญ่
ใช้ PostgreSQL 9.2 ฉันมีปัญหากับการสืบค้นที่ช้าในตารางที่ค่อนข้างใหญ่ (200+ ล้านแถว) ฉันไม่ได้พยายามอะไรที่บ้าคลั่งเพียงแค่เพิ่มคุณค่าทางประวัติศาสตร์ ด้านล่างคือแบบสอบถามและผลลัพธ์แผนแบบสอบถาม เค้าโครงตารางของฉัน: Table "public.energy_energyentry" Column | Type | Modifiers -----------+--------------------------+----------------------------------------------------------------- id | integer | not null default nextval('energy_energyentry_id_seq'::regclass) prop_id | integer | not null timestamp | timestamp with time zone | not null value | double precision | not null Indexes: "energy_energyentry_pkey" PRIMARY …

1
การจัดเก็บและการสืบค้นข้อมูลการกลิ้งใน PostgreSQL
ฉันมีข้อมูลโมเดลสภาพอากาศจำนวนมากถูกใส่ลงในฐานข้อมูล PostgreSQL เครื่องมี 8 คอร์และ RAM 16 GB ฉันใช้ PostgreSQL 9.3 กับ PostGIS 2.1 แต่ละตารางจะมีข้อมูลสภาพอากาศที่แตกต่างกัน (อุณหภูมิจุดน้ำค้างลม ฯลฯ ) แต่ละตารางจะมีคอลัมน์ 6-7 คอลัมน์: ละติจูดลองจิจูดลองจิจูดเรขาคณิตระดับความสูงวันที่และเวลาที่แบบจำลองนั้นเกี่ยวข้องและค่าข้อมูลที่น่าสนใจ 1-2 รายการ ข้อมูลจะถูกสอบถามเป็นหลักสำหรับกล่อง bounding ตามเวลาและระดับความสูง จะมีประมาณ 145,757,360 แถวต่อตาราง (ข้อมูลที่เก่ากว่าตอนนี้จะไม่ถูกลบอีกต่อไป) ฉันประมาณขนาดของตารางโดยประมาณประมาณ 10 GB โดยไม่มีดัชนี (นั่นคือข้อมูล 52 ไบต์บวก 23 ไบต์ค่าใช้จ่ายต่อแถว) ข้อมูลจะถูกอัปเดต / แทรกเป็นประจำเมื่อมีข้อมูลโมเดลใหม่ บันทึก: ดังนั้นฉันดูที่แผนสองข้อนี้: เพียงจัดทำดัชนีและจัดกลุ่มตาม (วันที่และเวลา, ระดับความสูง) พร้อมดัชนีเพิ่มเติมสำหรับรูปทรงเรขาคณิตของจุด รันงาน …

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