أكثر

إظهار سجل عبارات Sql التي ينشئها QGIS لاسترداد البيانات من Postgis

إظهار سجل عبارات Sql التي ينشئها QGIS لاسترداد البيانات من Postgis


هل هناك طرق - لجعل QGis تسجل بيان SQL الذي تم إنشاؤه أو لإجبار POSTGIS على تسجيل جميع التفاعلات مع QGIS؟

هناك شيء غريب يحدث لطبقة WFS التي استردتها في QGIS ، لأنها لا تحدد جميع البيانات المتاحة في جدول قاعدة البيانات المعني. أحتاج إلى معرفة المعايير التي يختارها QGIS لتضييق نطاق المجموعة المختارة.


يجب أن تكون قادرًا على الحصول على السجلات من Postgresql بمجرد تكوينه. عادة ما أقوم بتعيينlog_statement = 'all'في postgresql.conf الخاص بي ، حتى في قواعد بيانات الإنتاج (مع إجراء تنظيف منفصل لمسحها كل أسبوعين). قم أيضًا بتغيير log_line_prefix إلى شيء يتضمن على الأقل معرف العملية ، شيء مثل:log_line_prefix = '٪ t٪ a٪ u٪ p'.

وأثناء وجودك هناك ، يمكنك أيضًا تعيين شرح تلقائي:

shared_preload_libraries = 'auto_explain' # (التغيير يتطلب إعادة التشغيل) auto_explain.log_min_duration = '3s'

ثم يمكنك البحث في السجلات عن QGIS أو معرف المنتج:

2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: بيان: DECLARE qgis_1 BINARY CURSOR FOR SELECT st_asbinary ("geom"، 'NDR')، ctid FROM "fe". "xx_test_5" WHERE "geom" && st_makeenvelope (-10940458.55397558398544788،5799047.5 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: المدة: 15.000 مللي ثانية 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: البيان: إحضار إلى الأمام 2000 من qgis_1 2015- 08-19 12:30:40 GMT QGIS postgres 11916 LOG: المدة: 0.000 ms 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: البيان: إحضار إلى الأمام 2000 من qgis_1 2015-08-19 12:30: 40 GMT QGIS postgres 11916 LOG: المدة: 0.000 ms 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: البيان: إغلاق qgis_1 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: المدة: 0.000 ms 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: بيان: COMMIT 2015-08-19 12:30:40 GMT QGIS postgres 11916 LOG: المدة: 0.000 مللي ثانية