I am using Oracle Database with Apache spark 2.3.0
In my code I am writing final output (after all the processing) in three tables using below spark command.
billableChargeKDF.write().mode("append").format("jdbc").option("url", connection).option("dbtable", "CI_BILL_CHG_K").save();
billableChargeDF.write().mode("append").format("jdbc").option("url", connection).option("dbtable", "CI_BILL_CHG").save();
billableChargeSqDF.write().mode("append").format("jdbc").option("url", connection).option("dbtable", "CI_BCHG_SQ").save();
Each of the three Dataframes has 130 Partions. Each dataframe is writing 30 Million rows.
I am using 130 Cores, 26 Executors (Each executor is having 30GB Memory), 2 Worker machines(each having 88 virtual cores and 502.GB Memory)
After analyzing AWR report
I found that above INSERT INTO
queries takes most per Execution time.
Is there anyway I can reduce same?
Is there anyway I can improve performance?
EDIT
Also High Watermark contention is 30% of DB time.
DB machine has 16 Cores and 264GB.
AWR REPORT DATA
EDIT:
I have ran this query
SELECT tablespace_name, extent_id, blocks, bytes,segment_name FROM user_extents WHERE segment_name = 'CI_BILL_CHG';
Below is the result if it can help.
CISTS_01 0 128 1048576 CI_BILL_CHG
CISTS_01 1 128 1048576 CI_BILL_CHG
CISTS_01 2 128 1048576 CI_BILL_CHG
CISTS_01 3 128 1048576 CI_BILL_CHG
CISTS_01 4 128 1048576 CI_BILL_CHG
CISTS_01 5 128 1048576 CI_BILL_CHG
CISTS_01 6 128 1048576 CI_BILL_CHG
CISTS_01 7 128 1048576 CI_BILL_CHG
CISTS_01 8 128 1048576 CI_BILL_CHG
CISTS_01 9 128 1048576 CI_BILL_CHG
CISTS_01 10 128 1048576 CI_BILL_CHG
CISTS_01 11 128 1048576 CI_BILL_CHG
CISTS_01 12 128 1048576 CI_BILL_CHG
CISTS_01 13 128 1048576 CI_BILL_CHG
CISTS_01 14 128 1048576 CI_BILL_CHG
CISTS_01 15 128 1048576 CI_BILL_CHG
CISTS_01 16 128 1048576 CI_BILL_CHG
CISTS_01 17 128 1048576 CI_BILL_CHG
CISTS_01 18 128 1048576 CI_BILL_CHG
CISTS_01 19 128 1048576 CI_BILL_CHG
CISTS_01 20 128 1048576 CI_BILL_CHG
CISTS_01 21 128 1048576 CI_BILL_CHG
CISTS_01 22 128 1048576 CI_BILL_CHG
CISTS_01 23 128 1048576 CI_BILL_CHG
CISTS_01 24 128 1048576 CI_BILL_CHG
CISTS_01 25 128 1048576 CI_BILL_CHG
CISTS_01 26 128 1048576 CI_BILL_CHG
CISTS_01 27 128 1048576 CI_BILL_CHG
CISTS_01 28 128 1048576 CI_BILL_CHG
CISTS_01 29 128 1048576 CI_BILL_CHG
CISTS_01 30 128 1048576 CI_BILL_CHG
CISTS_01 31 128 1048576 CI_BILL_CHG
CISTS_01 32 128 1048576 CI_BILL_CHG
CISTS_01 33 128 1048576 CI_BILL_CHG
CISTS_01 34 128 1048576 CI_BILL_CHG
CISTS_01 35 128 1048576 CI_BILL_CHG
CISTS_01 36 128 1048576 CI_BILL_CHG
CISTS_01 37 128 1048576 CI_BILL_CHG
CISTS_01 38 128 1048576 CI_BILL_CHG
CISTS_01 39 128 1048576 CI_BILL_CHG
CISTS_01 40 128 1048576 CI_BILL_CHG
CISTS_01 41 128 1048576 CI_BILL_CHG
CISTS_01 42 128 1048576 CI_BILL_CHG
CISTS_01 43 128 1048576 CI_BILL_CHG
CISTS_01 44 128 1048576 CI_BILL_CHG
CISTS_01 45 128 1048576 CI_BILL_CHG
CISTS_01 46 128 1048576 CI_BILL_CHG
CISTS_01 47 128 1048576 CI_BILL_CHG
CISTS_01 48 128 1048576 CI_BILL_CHG
CISTS_01 49 128 1048576 CI_BILL_CHG
CISTS_01 50 128 1048576 CI_BILL_CHG
CISTS_01 51 128 1048576 CI_BILL_CHG
CISTS_01 52 128 1048576 CI_BILL_CHG
CISTS_01 53 128 1048576 CI_BILL_CHG
CISTS_01 54 128 1048576 CI_BILL_CHG
CISTS_01 55 128 1048576 CI_BILL_CHG
CISTS_01 56 128 1048576 CI_BILL_CHG
CISTS_01 57 128 1048576 CI_BILL_CHG
CISTS_01 58 128 1048576 CI_BILL_CHG
CISTS_01 59 128 1048576 CI_BILL_CHG
CISTS_01 60 128 1048576 CI_BILL_CHG
CISTS_01 61 128 1048576 CI_BILL_CHG
CISTS_01 62 128 1048576 CI_BILL_CHG
CISTS_01 63 128 1048576 CI_BILL_CHG
CISTS_01 64 1024 8388608 CI_BILL_CHG
CISTS_01 65 1024 8388608 CI_BILL_CHG
CISTS_01 66 1024 8388608 CI_BILL_CHG
CISTS_01 67 1024 8388608 CI_BILL_CHG
CISTS_01 68 1024 8388608 CI_BILL_CHG
CISTS_01 69 1024 8388608 CI_BILL_CHG
CISTS_01 70 1024 8388608 CI_BILL_CHG
CISTS_01 71 1024 8388608 CI_BILL_CHG
CISTS_01 72 1024 8388608 CI_BILL_CHG
CISTS_01 73 1024 8388608 CI_BILL_CHG
CISTS_01 74 1024 8388608 CI_BILL_CHG
CISTS_01 75 1024 8388608 CI_BILL_CHG
CISTS_01 76 1024 8388608 CI_BILL_CHG
CISTS_01 77 1024 8388608 CI_BILL_CHG
CISTS_01 78 1024 8388608 CI_BILL_CHG
CISTS_01 79 1024 8388608 CI_BILL_CHG
CISTS_01 80 1024 8388608 CI_BILL_CHG
CISTS_01 81 1024 8388608 CI_BILL_CHG
CISTS_01 82 1024 8388608 CI_BILL_CHG
CISTS_01 83 1024 8388608 CI_BILL_CHG
CISTS_01 84 1024 8388608 CI_BILL_CHG
CISTS_01 85 1024 8388608 CI_BILL_CHG
CISTS_01 86 1024 8388608 CI_BILL_CHG
CISTS_01 87 1024 8388608 CI_BILL_CHG
CISTS_01 88 1024 8388608 CI_BILL_CHG
CISTS_01 89 1024 8388608 CI_BILL_CHG
CISTS_01 90 1024 8388608 CI_BILL_CHG
CISTS_01 91 1024 8388608 CI_BILL_CHG
CISTS_01 92 1024 8388608 CI_BILL_CHG
CISTS_01 93 1024 8388608 CI_BILL_CHG
CISTS_01 94 1024 8388608 CI_BILL_CHG
CISTS_01 95 1024 8388608 CI_BILL_CHG
CISTS_01 96 1024 8388608 CI_BILL_CHG
CISTS_01 97 1024 8388608 CI_BILL_CHG
CISTS_01 98 1024 8388608 CI_BILL_CHG
CISTS_01 99 1024 8388608 CI_BILL_CHG
CISTS_01 100 1024 8388608 CI_BILL_CHG
CISTS_01 101 1024 8388608 CI_BILL_CHG
CISTS_01 102 1024 8388608 CI_BILL_CHG
CISTS_01 103 1024 8388608 CI_BILL_CHG
CISTS_01 104 1024 8388608 CI_BILL_CHG
CISTS_01 105 1024 8388608 CI_BILL_CHG
CISTS_01 106 1024 8388608 CI_BILL_CHG
CISTS_01 107 1024 8388608 CI_BILL_CHG
CISTS_01 108 1024 8388608 CI_BILL_CHG
CISTS_01 109 1024 8388608 CI_BILL_CHG
CISTS_01 110 1024 8388608 CI_BILL_CHG
CISTS_01 111 1024 8388608 CI_BILL_CHG
CISTS_01 112 1024 8388608 CI_BILL_CHG
CISTS_01 113 1024 8388608 CI_BILL_CHG
CISTS_01 114 1024 8388608 CI_BILL_CHG
CISTS_01 115 1024 8388608 CI_BILL_CHG
CISTS_01 116 1024 8388608 CI_BILL_CHG
CISTS_01 117 1024 8388608 CI_BILL_CHG
CISTS_01 118 1024 8388608 CI_BILL_CHG
CISTS_01 119 1024 8388608 CI_BILL_CHG
CISTS_01 120 1024 8388608 CI_BILL_CHG
CISTS_01 121 1024 8388608 CI_BILL_CHG
CISTS_01 122 1024 8388608 CI_BILL_CHG
CISTS_01 123 1024 8388608 CI_BILL_CHG
CISTS_01 124 1024 8388608 CI_BILL_CHG
CISTS_01 125 1024 8388608 CI_BILL_CHG
CISTS_01 126 1024 8388608 CI_BILL_CHG
CISTS_01 127 1024 8388608 CI_BILL_CHG
CISTS_01 128 1024 8388608 CI_BILL_CHG
CISTS_01 129 1024 8388608 CI_BILL_CHG
CISTS_01 130 1024 8388608 CI_BILL_CHG
CISTS_01 131 1024 8388608 CI_BILL_CHG
CISTS_01 132 1024 8388608 CI_BILL_CHG
CISTS_01 133 1024 8388608 CI_BILL_CHG
CISTS_01 134 1024 8388608 CI_BILL_CHG
CISTS_01 135 1024 8388608 CI_BILL_CHG
CISTS_01 136 1024 8388608 CI_BILL_CHG
CISTS_01 137 1024 8388608 CI_BILL_CHG
CISTS_01 138 1024 8388608 CI_BILL_CHG
CISTS_01 139 1024 8388608 CI_BILL_CHG
CISTS_01 140 1024 8388608 CI_BILL_CHG
CISTS_01 141 1024 8388608 CI_BILL_CHG
CISTS_01 142 1024 8388608 CI_BILL_CHG
CISTS_01 143 1024 8388608 CI_BILL_CHG
CISTS_01 144 1024 8388608 CI_BILL_CHG
CISTS_01 145 1024 8388608 CI_BILL_CHG
CISTS_01 146 1024 8388608 CI_BILL_CHG
CISTS_01 147 1024 8388608 CI_BILL_CHG
CISTS_01 148 1024 8388608 CI_BILL_CHG
CISTS_01 149 1024 8388608 CI_BILL_CHG
CISTS_01 150 1024 8388608 CI_BILL_CHG
CISTS_01 151 1024 8388608 CI_BILL_CHG
CISTS_01 152 1024 8388608 CI_BILL_CHG
CISTS_01 153 1024 8388608 CI_BILL_CHG
CISTS_01 154 1024 8388608 CI_BILL_CHG
CISTS_01 155 1024 8388608 CI_BILL_CHG
CISTS_01 156 1024 8388608 CI_BILL_CHG
CISTS_01 157 1024 8388608 CI_BILL_CHG
CISTS_01 158 1024 8388608 CI_BILL_CHG
CISTS_01 159 1024 8388608 CI_BILL_CHG
CISTS_01 160 1024 8388608 CI_BILL_CHG
CISTS_01 161 1024 8388608 CI_BILL_CHG
CISTS_01 162 1024 8388608 CI_BILL_CHG
CISTS_01 163 1024 8388608 CI_BILL_CHG
CISTS_01 164 1024 8388608 CI_BILL_CHG
CISTS_01 165 1024 8388608 CI_BILL_CHG
CISTS_01 166 1024 8388608 CI_BILL_CHG
CISTS_01 167 1024 8388608 CI_BILL_CHG
CISTS_01 168 1024 8388608 CI_BILL_CHG
CISTS_01 169 1024 8388608 CI_BILL_CHG
CISTS_01 170 1024 8388608 CI_BILL_CHG
CISTS_01 171 1024 8388608 CI_BILL_CHG
CISTS_01 172 1024 8388608 CI_BILL_CHG
CISTS_01 173 1024 8388608 CI_BILL_CHG
CISTS_01 174 1024 8388608 CI_BILL_CHG
CISTS_01 175 1024 8388608 CI_BILL_CHG
CISTS_01 176 1024 8388608 CI_BILL_CHG
CISTS_01 177 1024 8388608 CI_BILL_CHG
CISTS_01 178 1024 8388608 CI_BILL_CHG
CISTS_01 179 1024 8388608 CI_BILL_CHG
CISTS_01 180 1024 8388608 CI_BILL_CHG
CISTS_01 181 1024 8388608 CI_BILL_CHG
CISTS_01 182 1024 8388608 CI_BILL_CHG
CISTS_01 183 1024 8388608 CI_BILL_CHG
CISTS_01 184 8192 67108864 CI_BILL_CHG
CISTS_01 185 8192 67108864 CI_BILL_CHG
CISTS_01 186 8192 67108864 CI_BILL_CHG
CISTS_01 187 8192 67108864 CI_BILL_CHG
CISTS_01 188 8192 67108864 CI_BILL_CHG
CISTS_01 189 8192 67108864 CI_BILL_CHG
CISTS_01 190 8192 67108864 CI_BILL_CHG
CISTS_01 191 8192 67108864 CI_BILL_CHG
CISTS_01 192 8192 67108864 CI_BILL_CHG
CISTS_01 193 8192 67108864 CI_BILL_CHG
CISTS_01 194 8192 67108864 CI_BILL_CHG
CISTS_01 195 8192 67108864 CI_BILL_CHG
CISTS_01 196 8192 67108864 CI_BILL_CHG
CISTS_01 197 8192 67108864 CI_BILL_CHG
CISTS_01 198 8192 67108864 CI_BILL_CHG
CISTS_01 199 8192 67108864 CI_BILL_CHG
CISTS_01 200 8192 67108864 CI_BILL_CHG
CISTS_01 201 8192 67108864 CI_BILL_CHG
CISTS_01 202 8192 67108864 CI_BILL_CHG
CISTS_01 203 8192 67108864 CI_BILL_CHG
CISTS_01 204 8192 67108864 CI_BILL_CHG
CISTS_01 205 8192 67108864 CI_BILL_CHG
CISTS_01 206 8192 67108864 CI_BILL_CHG
CISTS_01 207 8192 67108864 CI_BILL_CHG
CISTS_01 208 8192 67108864 CI_BILL_CHG
CISTS_01 209 8192 67108864 CI_BILL_CHG
CISTS_01 210 8192 67108864 CI_BILL_CHG
CISTS_01 211 8192 67108864 CI_BILL_CHG
CISTS_01 212 8192 67108864 CI_BILL_CHG
CISTS_01 213 8192 67108864 CI_BILL_CHG
CISTS_01 214 8192 67108864 CI_BILL_CHG
CISTS_01 215 8192 67108864 CI_BILL_CHG
CISTS_01 216 8192 67108864 CI_BILL_CHG
CISTS_01 217 8192 67108864 CI_BILL_CHG
CISTS_01 218 8192 67108864 CI_BILL_CHG
CISTS_01 219 8192 67108864 CI_BILL_CHG
CISTS_01 220 8192 67108864 CI_BILL_CHG
CISTS_01 221 8192 67108864 CI_BILL_CHG
CISTS_01 222 8192 67108864 CI_BILL_CHG
CISTS_01 223 8192 67108864 CI_BILL_CHG
CISTS_01 224 8192 67108864 CI_BILL_CHG
CISTS_01 225 8192 67108864 CI_BILL_CHG
CISTS_01 226 8192 67108864 CI_BILL_CHG
CISTS_01 227 8192 67108864 CI_BILL_CHG
CISTS_01 228 8192 67108864 CI_BILL_CHG
CISTS_01 229 8192 67108864 CI_BILL_CHG
CISTS_01 230 8192 67108864 CI_BILL_CHG
CISTS_01 231 8192 67108864 CI_BILL_CHG
CISTS_01 232 8192 67108864 CI_BILL_CHG
CISTS_01 233 8192 67108864 CI_BILL_CHG
CISTS_01 234 8192 67108864 CI_BILL_CHG
CISTS_01 235 8192 67108864 CI_BILL_CHG
CISTS_01 236 8192 67108864 CI_BILL_CHG
CISTS_01 237 8192 67108864 CI_BILL_CHG
CISTS_01 238 8192 67108864 CI_BILL_CHG
CISTS_01 239 8192 67108864 CI_BILL_CHG
CISTS_01 240 8192 67108864 CI_BILL_CHG
CISTS_01 241 8192 67108864 CI_BILL_CHG
CISTS_01 242 8192 67108864 CI_BILL_CHG
CISTS_01 243 8192 67108864 CI_BILL_CHG
CISTS_01 244 8192 67108864 CI_BILL_CHG
CISTS_01 245 8192 67108864 CI_BILL_CHG
CISTS_01 246 8192 67108864 CI_BILL_CHG
CISTS_01 247 8192 67108864 CI_BILL_CHG
CISTS_01 248 8192 67108864 CI_BILL_CHG
CISTS_01 249 8192 67108864 CI_BILL_CHG
CISTS_01 250 8192 67108864 CI_BILL_CHG
CISTS_01 251 8192 67108864 CI_BILL_CHG
CISTS_01 252 8192 67108864 CI_BILL_CHG
CISTS_01 253 8192 67108864 CI_BILL_CHG
CISTS_01 254 8192 67108864 CI_BILL_CHG
CISTS_01 255 8192 67108864 CI_BILL_CHG
CISTS_01 256 8192 67108864 CI_BILL_CHG
CISTS_01 257 8192 67108864 CI_BILL_CHG
CISTS_01 258 8192 67108864 CI_BILL_CHG
CISTS_01 259 8192 67108864 CI_BILL_CHG
CISTS_01 260 8192 67108864 CI_BILL_CHG
CISTS_01 261 8192 67108864 CI_BILL_CHG
CISTS_01 262 8192 67108864 CI_BILL_CHG
CISTS_01 263 8192 67108864 CI_BILL_CHG
CISTS_01 264 8192 67108864 CI_BILL_CHG
CISTS_01 265 8192 67108864 CI_BILL_CHG
CISTS_01 266 8192 67108864 CI_BILL_CHG
CISTS_01 267 8192 67108864 CI_BILL_CHG
CISTS_01 268 8192 67108864 CI_BILL_CHG
CISTS_01 269 8192 67108864 CI_BILL_CHG
CISTS_01 270 8192 67108864 CI_BILL_CHG
CISTS_01 271 8192 67108864 CI_BILL_CHG
CISTS_01 272 8192 67108864 CI_BILL_CHG
CISTS_01 273 8192 67108864 CI_BILL_CHG
CISTS_01 274 8192 67108864 CI_BILL_CHG
CISTS_01 275 8192 67108864 CI_BILL_CHG
CISTS_01 276 8192 67108864 CI_BILL_CHG
CISTS_01 277 8192 67108864 CI_BILL_CHG
CISTS_01 278 8192 67108864 CI_BILL_CHG
CISTS_01 279 8192 67108864 CI_BILL_CHG
CISTS_01 280 8192 67108864 CI_BILL_CHG
CISTS_01 281 8192 67108864 CI_BILL_CHG
CISTS_01 282 8192 67108864 CI_BILL_CHG
CISTS_01 283 8192 67108864 CI_BILL_CHG
CISTS_01 284 8192 67108864 CI_BILL_CHG
CISTS_01 285 8192 67108864 CI_BILL_CHG
CISTS_01 286 8192 67108864 CI_BILL_CHG
CISTS_01 287 8192 67108864 CI_BILL_CHG
CISTS_01 288 8192 67108864 CI_BILL_CHG
CISTS_01 289 8192 67108864 CI_BILL_CHG
CISTS_01 290 8192 67108864 CI_BILL_CHG
CISTS_01 291 8192 67108864 CI_BILL_CHG
CISTS_01 292 8192 67108864 CI_BILL_CHG
CISTS_01 293 8192 67108864 CI_BILL_CHG
CISTS_01 294 8192 67108864 CI_BILL_CHG
CISTS_01 295 8192 67108864 CI_BILL_CHG
CISTS_01 296 8192 67108864 CI_BILL_CHG
CISTS_01 297 8192 67108864 CI_BILL_CHG
CISTS_01 298 8192 67108864 CI_BILL_CHG
CISTS_01 299 8192 67108864 CI_BILL_CHG
CISTS_01 300 8192 67108864 CI_BILL_CHG
CISTS_01 301 8192 67108864 CI_BILL_CHG
CISTS_01 302 8192 67108864 CI_BILL_CHG
CISTS_01 303 8192 67108864 CI_BILL_CHG
CISTS_01 304 8192 67108864 CI_BILL_CHG
CISTS_01 305 8192 67108864 CI_BILL_CHG
CISTS_01 306 8192 67108864 CI_BILL_CHG
CISTS_01 307 8192 67108864 CI_BILL_CHG
CISTS_01 308 8192 67108864 CI_BILL_CHG
CISTS_01 309 8192 67108864 CI_BILL_CHG
CISTS_01 310 8192 67108864 CI_BILL_CHG
CISTS_01 311 8192 67108864 CI_BILL_CHG
CISTS_01 312 8192 67108864 CI_BILL_CHG
CISTS_01 313 8192 67108864 CI_BILL_CHG
CISTS_01 314 8192 67108864 CI_BILL_CHG
CISTS_01 315 8192 67108864 CI_BILL_CHG
CISTS_01 316 8192 67108864 CI_BILL_CHG
CISTS_01 317 8192 67108864 CI_BILL_CHG
CISTS_01 318 8192 67108864 CI_BILL_CHG
CISTS_01 319 8192 67108864 CI_BILL_CHG
CISTS_01 320 8192 67108864 CI_BILL_CHG
CISTS_01 321 8192 67108864 CI_BILL_CHG
CISTS_01 322 8192 67108864 CI_BILL_CHG
CISTS_01 323 8192 67108864 CI_BILL_CHG
CISTS_01 324 8192 67108864 CI_BILL_CHG
CISTS_01 325 8192 67108864 CI_BILL_CHG
CISTS_01 326 8192 67108864 CI_BILL_CHG
CISTS_01 327 8192 67108864 CI_BILL_CHG
CISTS_01 328 8192 67108864 CI_BILL_CHG
CISTS_01 329 8192 67108864 CI_BILL_CHG
CISTS_01 330 8192 67108864 CI_BILL_CHG
Best Answer
The time distribution on your inserts:
This is not normal, and the rest of the time is spent waiting on something else. This could be caused by simple transactional locking (TX contention, TM contention) but there is nothing that indicates this in your top 10 events. But there are other waits.
You have a high number of HW contention waits. HW contention waits occur when data is concurrently inserted into the same table and the database needs to allocate new extents for the segment. This can be be mitigated by increasing the extent size for the table. The other waits can be simply the consequences of this.
You did not say anything about the table. HW contention is usually not a problem on tables with basic data types. But it is a significant problem on tables with Basicfile type LOB columns. Oracle 11g, by default, creates Basicfile LOBs, unless you explicitly specify Securefile LOB type on table creation or change the
db_securefile
parameter before creating the table. Securefile LOBs are designed to perform much better, including concurrency situation like the above.If these tables have LOB columns, and they are Basicfile LOBs, it is recommended to migrate them to Securefile LOBs. Then perform your test again to see if it helped.
If these tables do not have LOB columns, then you could try this with bigger extent sizes. For a quick test without any big change, you could try manually preallocating extents and see if it improves performance. For example:
alter table ci_bill_chg allocate extent (size 10G)
. If that helps, then you can go in this direction.