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

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

1
เป็นไปได้ไหมที่จะไม่รวมผู้ใช้บางคนในกิจกรรมการบันทึกของ PostgreSQL
ฉันต้องการตรวจสอบกิจกรรมของผู้ใช้ในฐานข้อมูลของเรา ฉันได้ตั้งค่าพารามิเตอร์ต่อไปนี้ในpostgresql.conf: log_min_duration_statement = 0 log_connections = on log_disconnections = on log_line_prefix = '%t %a %d %h %u |' อย่างไรก็ตามฉันตระหนักว่าไฟล์บันทึกส่วนใหญ่เต็มไปด้วยคำสั่งที่ดำเนินการโดยpostgresผู้ใช้ซึ่งสคริปต์ที่ฉันเขียนสำหรับงานบำรุงรักษาใช้: คำนวณมุมมอง materialized ใหม่, pg_dump, pg_restore, แยกมุมมองเป็นไฟล์ตาราง ฯลฯ ผลที่ได้คือทุกวัน ล็อกไฟล์มีขนาดเกิน 12 Mb มีวิธีในการแยกกิจกรรมของผู้ใช้ที่ระบุออกจากบันทึกหรือไม่
10 postgresql  log 

1
ไม่ตรงกันอย่างมากระหว่างขนาดดัชนีและจำนวนบัฟเฟอร์ในแผนการดำเนินการ
ปัญหา เรามีคำถามเช่น SELECT COUNT(1) FROM article JOIN reservation ON a_id = r_article_id WHERE r_last_modified < now() - '8 weeks'::interval AND r_group_id = 1 AND r_status = 'OPEN'; ในขณะที่หมดเวลา (หลังจากผ่านไป 10 นาที) บ่อยกว่านั้นฉันตัดสินใจตรวจสอบปัญหา EXPLAIN (ANALYZE, BUFFERS)เอาท์พุทมีลักษณะเช่นนี้ Aggregate (cost=264775.48..264775.49 rows=1 width=0) (actual time=238960.290..238960.291 rows=1 loops=1) Buffers: shared hit=200483 read=64361 dirtied=666 written=8, temp …

1
ทำไมดัชนีจินในคอลัมน์ jsonb ทำให้ข้อความค้นหาของฉันช้าลงและฉันจะทำอย่างไรได้บ้าง
เตรียมข้อมูลการทดสอบ: CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE TABLE docs (data JSONB NOT NULL DEFAULT '{}'); -- generate 200k documents, ~half with type: "type1" and another half with type: "type2", unique incremented index and random uuid per each row INSERT INTO docs (data) SELECT json_build_object('id', gen_random_uuid(), 'type', (CASE WHEN random() …

1
สิทธิพิเศษจะแสดงรายการใน \ l และเมื่อใด
สิทธิในการเข้าถึงถูกระบุโดย \ l เมื่อใดและจะไม่ใช้ สิทธิ์การเข้าถึงที่ระบุโดย \ l สามารถเปลี่ยนแปลงได้หลังจากการให้สิทธิ์และการเพิกถอน: $ createuser -EP my_readonly $ psql development development=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------------------------+----------+----------+-------------+-------------+----------------------- development | vagrant | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | ... development=# grant usage on schema public …

3
PostgreSQL สามารถใช้ null ในดัชนีได้หรือไม่
ฉันอ่านหนังสือเล่มนี้ซึ่งบอกว่า ฐานข้อมูลสันนิษฐานว่า Indexed_Col IS NOT NULL ครอบคลุมช่วงที่มีขนาดใหญ่เกินไปที่จะเป็นประโยชน์ดังนั้นฐานข้อมูลจะไม่ขับไปยังดัชนีจากเงื่อนไขนี้ ฉันจำได้ว่าหนังสือเล่มนี้มีความเก่าแก่กว่า 10 ปี แต่ได้รับการพิสูจน์แล้วค่อนข้างมีประโยชน์ - การใช้คำแนะนำที่รวบรวมได้จากหน้าเว็บของตนฉันได้เร่งแบบสอบถามขึ้นโดยปัจจัยที่สิบ นอกจากนี้ในการทำงานEXPLAIN ANALYZEในSELECTแบบสอบถามที่ฉันได้พบว่าไม่มีการจัดทำดัชนีของฉันจะถูกนำมาใช้แม้ในขณะที่สิทธิทั้งหมดที่พวกเขาควรจะเป็น ดังนั้นคำถามของฉันคือ: สมมติว่ามีตารางที่มีคอลัมน์ซึ่งคำจำกัดความของคอลัมน์รวมถึง "NOT NULL" และดัชนีที่มีอยู่ซึ่งครอบคลุมคอลัมน์นี้ดัชนีนี้จะถูกใช้ในแบบสอบถามของตารางนั้นซึ่งคอลัมน์เป็นส่วนหนึ่งของแบบสอบถามหรือไม่ ชอบ: CREATE TABLE my_table( a varchar NOT NULL ); CREATE INDEX ix_my_table ON my_table(a); SELECT a from my_table;

1
เป็นไปได้หรือไม่ที่จะสำรองและเรียกคืนมุมมองที่เป็นรูปธรรมด้วยข้อมูล
ฉันมีมุมมองที่เป็นรูปธรรมซึ่งยากต่อการคำนวณซึ่งฉันต้องการสำรองและเรียกคืนโดยใช้ข้อมูลที่จัดเก็บจริงไม่ใช่โดยการคำนวณใหม่ เป็นไปได้ใน PostgreSQL 9.4? (ทางเลือกคือการสร้างตารางจริง แต่ยากที่จะ "รีเฟรช")

2
รับสถิติการสืบค้นที่ทำงานช้า
แอปพลิเคชันฐานข้อมูลของฉันเรียกใช้แบบสอบถามที่แตกต่างกันมากมาย ฉันได้ตั้งไว้log_min_duration_statementที่ 1,000 แต่การสืบค้นที่บันทึกไว้มีไม่ช้าเสมอส่วนใหญ่พวกเขาใช้เวลาเพียงไม่กี่มิลลิวินาที เป็นไปได้หรือไม่ที่จะได้รับสถิติของข้อความค้นหาทั้งหมดและบ่อยครั้งที่พวกเขาใช้เวลานานกว่า 1,000 มิลลิวินาที

2
วิธีการกำหนดค่าใช้จ่าย / ผลประโยชน์ของการเพิ่มดัชนี?
ตามที่Craig Ringer : แม้ว่าโดยทั่วไปจะเป็นความคิดที่ดีที่จะสร้างดัชนีใน (หรือรวมถึง) คอลัมน์คีย์ต่างประเทศอ้างอิงของคุณ แต่ก็ไม่จำเป็น แต่ละดัชนีคุณเพิ่มช้า DML การดำเนินงานลดลงเล็กน้อยเพื่อให้คุณจ่ายค่าใช้จ่ายการปฏิบัติงานในทุกINSERT, หรือUPDATE DELETEหากดัชนีนั้นไม่ค่อยได้ใช้อาจไม่คุ้มค่า คุณจะทราบได้อย่างไรว่าผลประโยชน์ของการเพิ่มดัชนีเกินกว่าราคาหรือไม่ คุณโปรไฟล์หน่วยทดสอบก่อน / หลังเพิ่มดัชนีและตรวจสอบเพื่อเพิ่มประสิทธิภาพโดยรวมหรือไม่? หรือมีวิธีที่ดีกว่า

2
ค้นหา fulltext ช้าเนื่องจากการประมาณการแถวไม่ถูกต้องอย่างดุร้าย
ข้อความค้นหาแบบเต็มกับฐานข้อมูลนี้ (การเก็บตั๋วRT ( Request Tracker )) ดูเหมือนจะใช้เวลานานมากในการดำเนินการ ตารางสิ่งที่แนบ (มีข้อมูลแบบเต็ม) ประมาณ 15GB สคีมาฐานข้อมูลมีดังนี้ประมาณ 2 ล้านแถว: rt4 = # \ d + ไฟล์แนบ ตาราง "public.attachments" คอลัมน์ | ประเภท | ตัวดัดแปลง | จัดเก็บข้อมูล | ลักษณะ ----------------- + ----------------------------- + - -------------------------------------------------- ------ ---------- + + ------------- id | จำนวนเต็ม ไม่ใช่ null ค่าเริ่มต้น nextval …

2
ส่งคืนระเบียนด้วยฟังก์ชัน PL / pgSQL - เพื่อเพิ่มความเร็วในการสืบค้น
ฉันมีดีมอนที่ไม่ใช่ forking เขียนใน Perlซึ่งใช้การสอบถาม acync เพื่อเขียนสถิติผู้เล่นลงในฐานข้อมูล PostgreSQL 9.3 แต่เมื่อฉันต้องการอ่านบางสิ่งจากฐานข้อมูล (เช่นถ้าผู้เล่นถูกแบนหรือหากผู้เล่นมีสถานะวีไอพี) จากนั้นฉันจะใช้แบบสอบถามแบบซิงโครนัส สิ่งนี้ทำให้เกมหยุดชั่วขณะหนึ่งจนกว่าจะอ่านค่าจากฐานข้อมูล ฉันไม่สามารถเขียน daemon เกมของฉันใหม่เพื่อใช้การสืบค้นแบบ async สำหรับการอ่านค่า (ฉันพยายาม แต่มันต้องมีการเปลี่ยนแปลงมากเกินไป) ดังนั้นคำถามของฉันคือ : มันจะเป็นการรวมเข้ากับแบบสอบถามที่ไม่เกี่ยวข้องหลายรายการหรือไม่ เชื่อมต่อ) ถึง 1 ขั้นตอนและฉันจะคืนค่าหลายค่าในเวลาเดียวกันไปยังโปรแกรม Perl ของฉันได้อย่างไร ข้อความค้นหาปัจจุบันของฉันทั้งหมดใช้รหัสผู้เล่นเป็นพารามิเตอร์และส่งกลับค่า 1: -- Has the player been banned? select true from pref_ban where id=? -- What is the reputation of this player? …

1
ฉันจะ 'บอกใบ้' ความสำคัญของ CTE แบบเรียกซ้ำได้อย่างไร
ฉันใช้ CTE แบบเรียกซ้ำต่อไปนี้เป็นตัวอย่างขั้นต่ำ แต่โดยทั่วไปเครื่องมือเพิ่มประสิทธิภาพจะต้องใช้ค่าเริ่มต้นที่เป็น 'เดา' สำหรับ CTE แบบเรียกซ้ำ with recursive w(n) as ( select 1 union all select n+1 from w where n<5 ) select * from w; /* n --- 1 2 3 4 5 */ explain analyze with recursive w(n) as ( select 1 union all select n+1 …

2
วิธีตรวจสอบจำนวนการเชื่อมต่อฐานข้อมูล PostgreSQL อย่างถูกต้อง
ฉันพยายามใช้สคริปต์ Nagios เพื่อตรวจสอบจำนวนการเชื่อมต่อฐานข้อมูลในฐานข้อมูล Postgres และฉันพบปัญหานี้: สิ่งเหล่านี้นับเป็นการเชื่อมต่อแบบเปิดในปัจจุบันและวัดทุกๆ 5 นาที SELECT sum(numbackends) FROM pg_stat_database; แต่ถึงกระนั้นก็ดูเหมือนว่าจะพลาดการเชื่อมต่อระยะสั้นจำนวนมากดังนั้นสถิติอยู่ไกลจากความเป็นจริง ฉันพยายามเรียกใช้สคริปต์ด้วยตนเองและฉันสังเกตเห็นการเปลี่ยนแปลงครั้งใหญ่แม้ระหว่างการเชื่อมต่อสองครั้งทำให้ห่างจากกันไม่กี่วินาที ฉันจะรับข้อมูลนี้ในวิธีที่เชื่อถือได้อย่างไร ชอบ max (connectios) ที่เกิดขึ้นในช่วงเวลาหนึ่ง

1
PostgreSQL เตรียมการสืบค้นด้วยพารามิเตอร์ IN ()
ฉันพยายามจัดทำแบบสอบถามจาก PHP เช่น: pg_prepare($con, "prep", "select * from test where tid in ($1)"); จากนั้นเรียกใช้งานด้วย: $strpar = "3,4,6,8,10"; pg_execute($con, "prep", array($strpars)); ปัญหาคือฉันไม่สามารถผ่านชุดของค่าที่สร้างขึ้นตามที่เตรียมไว้คาดว่าจะมีพารามิเตอร์จำนวนคงที่ มีวิธีใดที่จะทำให้พารามิเตอร์เป็นแบบไดนามิกหรือไม่?

1
ประสิทธิภาพของ MongoDB เทียบกับ PostgreSQL 5.5 ล้านแถว / เอกสาร
บางคนสามารถช่วยฉันเปรียบเทียบคิวรีเหล่านี้และอธิบายว่าทำไมเคียวรี PostgreSQL ดำเนินการในเวลาไม่เกิน 2000 มิลลิวินาทีและคิวรีการรวม MongoDB ใช้เวลาเกือบ 9000 มิลลิวินาทีและบางครั้งสูงถึง 130K มิลลิวินาที PostgreSQL 9.3.2 on x86_64-apple-darwin, compiled by i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00), 64-bit แบบสอบถาม PostgreSQL SELECT locomotive_id, SUM(date_trunc('second', datetime) - date_trunc('second', prevDatetime)) AS utilization_time FROM bpkdmp WHERE datetime >= '2013-7-26 00:00:00.0000' AND datetime …

3
จะทำการอัพเกรดเล็กน้อยของ PostgreSQL บน Windows เช่น 9.3.0 เป็น 9.3.1 ได้อย่างไร
อะไรคือวิธีที่แนะนำในการอัพเกรดเล็กน้อยจาก PostgreSQL เช่น 9.3.0 เป็น 9.3.1 โดยใช้โปรแกรมติดตั้ง windows ที่สร้างโดย Enterprise DB ฉันควรถอนการติดตั้งก่อนหรือเพียงแค่ติดตั้งผ่านการติดตั้งที่มีอยู่? การติดตั้งปัจจุบันได้ดำเนินการกับ postgresql-9.3.0-1-windows-x64.exe ตอนนี้ฉันต้องการอัพเกรดโดยใช้ postgresql-9.3.1-1-windows-x64.exe

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