संक्षिप्त उत्तर यह है कि अतुल्यकालिक संचालन आपकी रूपरेखा को खराब कर रहे हैं।
bq.query
. पर डॉक्स बताएं कि परिणामी google.cloud.bigquery.job.QueryJob
वस्तु एक अतुल्यकालिक है क्वेरी नौकरी। इसका मतलब यह है कि, क्वेरी सबमिट करने के बाद, पायथन इंटरप्रेटर तब तक ब्लॉक नहीं होता जब तक आप क्वेरी के परिणामों को सिंक्रोनस QueryJob
में से किसी एक के साथ उपयोग करने का प्रयास नहीं करते हैं। तरीके, to_dataframe()
. आपके द्वारा देखे जा रहे 87 सेकंड का एक महत्वपूर्ण हिस्सा संभवतः क्वेरी के वापस आने की प्रतीक्षा में व्यतीत हो जाएगा।
आप QueryJob.done
. पर कॉल करके क्वेरी के पूरा होने की प्रतीक्षा कर सकते हैं जब तक यह सही न हो जाए, तब तक अपने दूसरे प्रोफाइलिंग प्रिंट स्टेटमेंट को कॉल करें।
यह आपके कोड का काफी अनुकूलन नहीं है, लेकिन उम्मीद है कि यह सही दिशा में आगे बढ़ने में मदद करता है। यह संभव है कि पांडा राउंडट्रिप की कुछ ट्यूनिंग मदद कर सकती है, लेकिन मुझे लगता है कि यह संभावना है कि आपका अधिकांश समय आपके डेटाबेस से पढ़ने/लिखने के इंतजार में बिताया जा रहा है, और यह कि अधिक कुशल या बड़ी संख्या में छोटे प्रश्न लिखना आपके लिए होगा कुल समय कम करने का एकमात्र विकल्प।