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

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

3
ตั้งค่าเริ่มต้นของคอลัมน์เป็นการต่อค่าสองคอลัมน์อื่นหรือไม่
ฉันมีฐานข้อมูล Postgresql 8.1 first_nameในตารางหนึ่งมีสามคอลัมน์: last_name, display_name, มันเป็นไปได้ที่จะตั้งค่าเริ่มต้นของdisplay_nameการเป็นfirst_name + " " + last_name?
13 postgresql 

1
ผลกระทบไฟล์ดิสก์ของการลบและสูญญากาศ
ฉันมีตารางที่อัปเดตบ่อยมากที่มี 240 ล้านแถว (และเพิ่มขึ้น) ทุกๆสามชั่วโมง 1.5 ล้านแถวจะถูกแทรกและ 1.5 ล้านแถวจะถูกลบ เมื่อฉันย้ายคลัสเตอร์ไปยัง SSD เวลาแทรกจำนวนมาก (โดยใช้การคัดลอก) นี้ถูกตัดจาก 22 นาทีเป็น 2.3 นาที เวลาลบก็ดีขึ้นเช่นกัน ฉันวางแผนที่จะทำการอัปเดตจำนวนมากนี้ทุกสองชั่วโมงหรือทุกชั่วโมง แม้ว่าประสิทธิภาพในตอนนี้ (หลังจาก SSD) เข้ากันได้กับการอัปเดตบ่อยครั้งมากขึ้นฉันได้อ่านเรื่องราวสยองขวัญเกี่ยวกับการตายของ SSD เนื่องจากความอดทนของ NAND จำกัด รวมกับการขยายการเขียน เนื่องจาก SSD มีราคาแพงฉันจึงต้องการผลักดันความตายไปสู่อนาคตเท่าที่จะทำได้ ดังนั้นคำถามของฉัน: เกิดอะไรขึ้นกับไฟล์ดิสก์ในการลบและสูญญากาศที่ตามมา? ฉันเดาว่ามีการเขียนดิสก์สองรายการหนึ่งรายการเพื่อทำเครื่องหมายแถวว่าถูกลบและอีกรายการหนึ่งเมื่อดูดฝุ่นเพื่อทำเครื่องหมายว่าพร้อมใช้งานเพื่อเขียนทับ หากแทนที่การลบและการดูดฉันจะแบ่งพาร์ติชันตารางที่สร้างและวางตารางที่แต่ละส่วนแทรก / ลบจำนวนมากฉันจะลดการสึกหรอของ SSD หรือไม่

5
มีวิธีการตั้งเจ้าของวัตถุทั้งหมดในฐานข้อมูล PostgreSQL ในเวลาเดียวกัน?
/programming/1348126/modify-owner-on-all-tables-simultaneously-in-postgresqlอธิบายวิธีที่ดีในการเปลี่ยนตารางและวัตถุอื่น ๆ ให้กับผู้ใช้ที่เฉพาะเจาะจงและใช้งานได้ทั้งหมด คำแนะนำดูเหมือนจะไม่สนใจฟังก์ชั่นที่ฉันสร้างขึ้น มีวิธีที่ค่อนข้างง่ายในการรีเซ็ตเจ้าของวัตถุทั้งหมดในฐานข้อมูลรวมถึงฟังก์ชั่นหรือไม่? การทำด้วยมือเป็นสิ่งที่ไม่พึงปรารถนาอย่างมาก

2
วิธีการเลื่อนระดับดัชนีที่มีอยู่เป็นคีย์หลักใน PostgreSQL
ฉันรู้วิธีสร้างคีย์หลักภายในตาราง แต่ฉันจะสร้างดัชนีที่มีอยู่เป็นคีย์หลักได้อย่างไร ฉันพยายามที่จะคัดลอกตารางที่มีอยู่จากฐานข้อมูลหนึ่งไปยังอีก เมื่อฉันแสดงตารางดัชนีที่ด้านล่างจะอยู่ในรูปแบบนี้: "my_index" PRIMARY KEY, btree (column1, column2) ฉันได้สร้างดัชนีโดย: CREATE INDEX my_index ON my_table (column1, column2) แต่ฉันไม่ทราบวิธีการทำให้เป็นคีย์หลัก ... อัปเดต: เวอร์ชันของเซิร์ฟเวอร์ของฉันคือ 8.3.3

4
เครื่องมือออกแบบ PostgreSQL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ดูแลฐานข้อมูล Exchange Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังจะออกแบบฐานข้อมูลที่จะทำงานกับ PostgreSQL ฉันคุ้นเคยกับเครื่องมืออันงดงามที่เรียกว่า MySQL Workbench สำหรับฐานข้อมูล MySQL มันมีประโยชน์และมันก็ดูดีที่ฉันคาดหวังจากซอฟต์แวร์การออกแบบฐานข้อมูล ถ้าฉันกำลังจะเรียนรู้เครื่องมือออกแบบฐานข้อมูลใหม่ฉันต้องการให้มันเป็นเครื่องมือที่ได้รับความนิยมมากที่สุด ดังนั้นคำถามของฉันคืออะไรเครื่องมือที่นิยมที่สุดสำหรับการออกแบบฐานข้อมูลใน PostgreSQL คืออะไร

3
ฉันควรใช้ SQL เข้าร่วมหรือในข้อ?
ฉันมีคำถามเกี่ยวกับวิธีการที่ดีที่สุด ฉันไม่แน่ใจว่าวิธีใดดีที่สุดเมื่อข้อมูลถูกพิจารณาว่าเป็นขนาด พิจารณา 3 ตารางต่อไปนี้: พนักงาน EMPLOYEE_ID, EMP_NAME โครงการ PROJECT_ID, PROJ_NAME EMP_PROJ (มากไปหามากถึงสองตารางข้างต้น) EMPLOYEE_ID, PROJECT_ID ปัญหา : กำหนด EmployeeID ให้ค้นหาพนักงานทั้งหมดของโครงการทั้งหมดที่พนักงานคนนี้มีความเกี่ยวข้อง ฉันได้ลองทำสองวิธี .. ทั้งสองวิธีต่างกันเพียงไม่กี่มิลลิวินาทีไม่ว่าจะใช้ข้อมูลขนาดใด SELECT EMP_NAME FROM EMPLOYEE WHERE EMPLOYEE_ID IN ( SELECT EMPLOYEE_ID FROM EMP_PROJ WHERE PROJECT_ID IN ( SELECT PROJECT_ID FROM EMP_PROJ p, EMPLOYEE e WHERE p.EMPLOYEE_ID = E.EMPLOYEE_ID …
13 postgresql  join 

1
สร้างข้อยกเว้นด้วยบริบท
เมื่อ PostgreSQL มีข้อผิดพลาดจะมีบรรทัด "CONTEXT" เช่น: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement แต่เมื่อฉันโยนข้อยกเว้นบรรทัดนี้ไม่ได้มี ฉันไม่พบวิธีเพิ่ม RAISE EXCEPTION 'blablabla' USING HINT = 'blablablabla'; เป็นไปได้ไหมที่จะเพิ่มบรรทัดนี้ในข้อยกเว้นของฉัน?

2
ฉันจะแยกผู้ใช้อื่นทั้งหมดออกจากฐานข้อมูล postgres ได้อย่างไร
ฉันต้องการการเข้าถึงฐานข้อมูลพิเศษ เป็นไปได้หรือไม่ที่ใช้คำสั่ง SQL เพื่อ "แยก" ผู้ใช้รายอื่นทั้งหมดจากฐานข้อมูล postgres หรืออาจปิดการเชื่อมต่ออื่น ๆ ทั้งหมดจากนั้นได้รับการเข้าถึงแบบเอกสิทธิ์ สำหรับการทดสอบหน่วยและการทดสอบนั้นจะดำเนินการด้วยตนเองเท่านั้นจึงไม่มีอันตรายใด ๆ เฉพาะการเชื่อมต่อที่ตายแล้วเท่านั้นที่จะได้รับผลกระทบ ไม่มีผู้ใช้รายอื่นเชื่อมต่อกับฐานข้อมูลที่ไม่สำคัญที่สุดเหล่านี้ การเชื่อมต่อที่ตายแล้วมาจากการพัฒนา สิ่งนี้จะเกิดขึ้นตลอดเวลาเมื่อการทดสอบที่กำลังเขียนหรือล้มเหลวไม่ออกจากการทำความสะอาด หากใครบางคนยังต้องปิดกั้นผู้ใช้คนอื่นอยู่ครู่หนึ่งหลังจากยกเลิกการเชื่อมต่อพวกเขาในสถานการณ์การผลิตดูคำตอบของ Scott Marlowe ด้านล่าง: /dba//a/6184/2024 ดูคำถามที่คล้ายกันนี้ใน dba: จะยกเลิกการเชื่อมต่อทั้งหมดไปยังฐานข้อมูลเฉพาะได้อย่างไรโดยไม่ต้องหยุดเซิร์ฟเวอร์
13 postgresql 

2
PostgreSQL“ ขนาดของไฟล์ชั่วคราว”
ฉันได้นำเข้าข้อมูลไปยังฐานข้อมูลใหม่ (ประมาณ 600m แถวของการประทับเวลา, จำนวนเต็ม, สองเท่า) จากนั้นฉันสร้างดัชนีบางส่วนและพยายามแก้ไขบางคอลัมน์ (มีปัญหาพื้นที่บางส่วน) ฐานข้อมูลถูกทำให้เป็นสุญญากาศ ตอนนี้ pgAdmin III บอกฉันว่า " ขนาดไฟล์ชั่วคราว " คือ 50G ~ + ไฟล์ชั่วคราวเหล่านี้คืออะไร? เหล่านี้เป็นบันทึกธุรกรรม SQL Server หรือไม่ ฉันจะกำจัดพวกเขาได้อย่างไรดูเหมือนว่าฐานข้อมูลใหญ่กว่าที่ควรจะเป็น (ขนาดรวมของฐานข้อมูลคือ 91 GB) การใช้Posgres 9.4.1บนเซิร์ฟเวอร์ Windows 2012 สกรีนช็อตของแท็บสถิติฐานข้อมูล:

2
ได้รับประโยชน์จากสคีมาทั้งหมดในฐานข้อมูลหรือไม่
ฉันต้องการGRANT USAGEผู้ใช้ / บทบาทสำหรับฐานข้อมูลที่กำหนด ฐานข้อมูลมีสกีมาจำนวนมาก ฉันรู้ว่ามีON ALL TABLES IN SCHEMAแต่ฉันต้องการ "schemas ทั้งหมด" ฉันพยายามGRANT USAGE .. ON DATABASEแต่ก็เห็นได้ชัดว่าผิด (มันไม่มีอยู่จริง ) นี่สำหรับ Postgres 9.3 หรือ 9.4 มันเป็นเซิร์ฟเวอร์ที่อยู่บน AWS RDS

1
PostgreSQL บ่นเกี่ยวกับหน่วยความจำที่แชร์ แต่ดูเหมือนว่าหน่วยความจำที่แชร์จะไม่เป็นไร
ฉันได้ทำคีมาแบบเข้มข้นแล้วปล่อยและสร้างบนเซิร์ฟเวอร์ PostgreSQL แต่ตอนนี้บ่น .. : WARNING: out of shared memory ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction. แต่ปัญหายังคงอยู่หาก PostgreSQL เพิ่งเริ่มต้นใหม่service postgresql restartฉันสงสัยว่า max_locks_per_transaction จะไม่ปรับอะไรเลย ฉันค่อนข้างจะเหินห่างเพราะรายการแก้ไขปัญหาสำหรับข้อผิดพลาดนี้ไม่ทำงานสำหรับฉัน ข้อมูลเพิ่มเติม 1409291350:รายละเอียดบางอย่างหายไป แต่ฉันเก็บผลลัพธ์ SQL หลักไว้ postgres=# SELECT version(); PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit และ: …

1
ใน Postgres วิธีรับรายการ savepoint ที่กำหนดในปัจจุบันต้องทำอย่างไร?
ฉันใช้ postgres SAVEPOINTซึ่งสร้าง savepoint ใหม่ภายในธุรกรรมปัจจุบันและต้องการแสดงรายการของ savepoint ที่กำหนดไว้ในปัจจุบันในการเชื่อมต่อ เพื่อให้แม่นยำยิ่งขึ้น: ฉันต้องการตรวจสอบชื่อที่จะไม่เรียกข้อผิดพลาด "no savepoint" ในการเชื่อมต่อ

2
วิธีดูคิวรีของเซสชันอื่นใน pg_stat_activity โดยไม่ต้องเป็นผู้ใช้ขั้นสูง
ฉันมีฐานข้อมูล Postgresql 9.2 ผู้ใช้สองคนถูกสร้างบนฐานข้อมูลนี้ เมื่อฉันทำแบบสอบถามต่อไปนี้เป็น superuser ฉันสามารถเห็นทุกสิ่ง select * from pg_stat_activity อย่างไรก็ตามเป็นไปได้หรือไม่ที่จะได้ผลลัพธ์เดียวกันโดยไม่ต้องเชื่อมต่อเป็น superuser ฉันควรอนุญาต / สร้างสิทธิ์ / บทบาทใดเพื่อให้ได้ผลลัพธ์ที่ผู้ใช้ระดับสูงเห็นได้

2
PostgreSQL เลือกฟิลด์ว่างของประเภทจำนวนเต็ม
ฉันมีตารางและฉันต้องเลือกแถวทั้งหมดที่มีค่าว่างสำหรับfk_fc_idฟิลด์ (เพื่อนำไปลบ) Column | Type | Modifiers ---------------+-----------------------------+------------------------------------------------------------ di_timestamp | timestamp without time zone | di_item_value | character varying(10) | fk_fc_id | integer | di_id | integer | not null default nextval('data_item_di_id_seq1'::regclass) อย่างไรก็ตามสิ่งนี้ไม่ทำงาน # select fk_fc_id,di_timestamp,di_item_value from data_item where fk_fc_id=""; ERROR: zero-length delimited identifier at or near """" LINE 1: …
13 postgresql 

2
pg_upgrade พารามิเตอร์การกำหนดค่าที่ไม่รู้จัก“ unix_socket_directory”
ฉันพยายามอัพเกรด Postgresql จาก 9.2 เป็น 9.3 ใน Fedora 18 โดยใช้คำสั่งนี้เป็นผู้ใช้ postgres $ pg_upgrade -b /bin -B /usr/pgsql-9.3/bin -d /var/lib/pgsql/data -D /var/lib/pgsql/9.3/data/ -j 2 -u postgres ข้อผิดพลาดในบันทึก คำสั่ง: "/ bin / pg_ctl" -w -l "pg_upgrade_server.log" -D "/ var / lib / pgsql / data" -o "-p 50432 -b -c Listen_addresses = …

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