国产亚洲精品久久久久动-影视先锋中文字幕-av网站在线观看一区-亚洲视频 在线观看-久久亚洲不卡-欧美精品一区在线观看-欧美乱淫视频-欧美熟妇另类久久久久久不卡-粉嫩av一区二区三区四区五区-日韩欧美操

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

推荐一个很好用的脚本session snapper

發布時間:2024/9/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐一个很好用的脚本session snapper 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源網址
http://tech.e2sn.com/oracle-scripts-and-tools/session-snapper


內容:

If you want to just download Snapper, you can get it from here:
  • http://blog.tanelpoder.com/files/scripts/snapper.sql
    (please right click on the file and use Save as... instead of copy & paste of the contents as some editors and terminal emulators mess up the code when pasting large content - you would end up with ORA-06550 errors!)
However I recommend you to skim through the article to understand Snapper's capabilities and limitations better!

Contents

  • 1?Introduction
  • 2?Using Snapper
  • 3?Snapper ASH mode
  • 3.1?Running Snapper in ASH mode on a single sesson
  • 3.2?Running Snapper in ASH mode on all sessions (the whole instance)
  • 4?Snapper V$ Performance Counter / Statistics mode?
  • 4.1?Running snapper on a subset of instances sessions
  • 5?Download Snapper
  • 6?Further Reading
  • 7?Feedback
  • Introduction

    Oracle Session Snapper syntax and examples by?Tanel Poder

    The Oracle Session Snapper v3 has some major improvements compared to old versions (v2 and v1). In addition to taking snapshots and reporting deltas of various V$ and X$ performance counters, it also samples session activity details from V$SESSION. This is pretty much like what Oracle's Active Session History does (ASH is essentially just a history of V$SESSION samples with few additional tricks). However, using ASH requires you to have additional Diagnostics Pack licenses, while querying V$SESSION (which is how Snapper works), doesn't. Starting from version 3.52, Snapper also supports the ASH-style sampling on Oracle 9.2 (in previous versions it required Oracle 10g+).

    Thanks to the ASH style sampling of V$SESSION, the Snapper can now report the TOP sessions, TOP wait events, TOP SQL_IDs, TOP PLSQL procedures causing the database activity and much more. NB! Even though I talk about ASH style sampling in Snapper, it's not Oracle's (separately licensed) ASH. It's just the same concept, but different tool. All that Snapper does is sampling of V$SESSION view using plain old PL/SQL, so that comes "for free" with Oracle. Snapper is meant to be a quick and easy ad-hoc performance troubleshooting tool for the field-DBAs out there who have to get their hands on and dirty whenever a database problem happens (and fix the problem fast!).?It is meant to be a flexible?first round performance troubleshooting tool, an entry point tool for troubleshooting, something which you can easily run in couple of seconds instead of having to immediately resort to heavier operations such as SQL tracing. Note that Snapper does not perform any magic for you. It does not make any smart performance recommendations or offer any tuning advice. All it does (and does well) is presenting the facts. It will take snapshots from views like V$SESSTAT and a few more and show you how much some performance counter incremented for a session during the snapshot period. Snapper v3 will additionally show you a TOP report of active V$SESSION samples taken during the snapshot period, just like ASH does.? Here are couple of important things about Snapper:
  • Snapper does not create any objects in the database
  • Snapper is just an anonymous PL/SQL block, parsed and compiled on the fly
  • Snapper requires no change whatsoever in the database schema or settings!
  • Note that this page you're reading right now is not a full systematic performance troubleshooting guide, but rather just a tool page which illustrates the capabilities of Session Snapper. Here are few examples of what the new Snapper 3 can do:

    Using Snapper

    At first examples I'm assuming that you've been able to find out the SID of the badly behaving session (or job running slow). Let say its 144, so you can run Snapper like that: SQL>?@snapper?ash?5 1 144 If you aren't familiar with Snapper already, it takes 4 parameters:
  • Parameter 1 (ash) states?what kind of measurements to do:
    • In Snapper v3 you can use "ASH" for Active Session History style sampling
    • In all snapper versions you can use "STATS"?for taking snapshots of V$SESSTAT and other performance counters

    Parameter 2 (5) states?the snapshot period length
    • In this example this means that Snapper measures session activity for 5 seconds and then prints the report

    Parameter 3 (1) states?how many times to take the performance snapshot and report.?
    • For first round troubleshooting I usually use only 1 snapshot/report, but sometimes I use a larger number to get multiple snapshots and reports over time

    Parameter 4 (144) is the SID of the?SID of the session?of interest
    • You can specify only one SID as in example -?144
    • You can specify multiple comma-separated SIDs -?144,145,200
    • You can speficy "all" to mean all sessions in the instance -?all
    • You can use special options like?user=SYSTEM?or?program=sqlplus?or?module=HR?to include sessions where corresponding column in V$SESSION matches the given string (look into the snapper script for full syntax)
    • Finally, you can use any subquery for specifying any set of SIDs like,?"select sid from v$session where username='SYSTEM' and program not like 'sqlplus%'"
    See examples below.

    Snapper ASH mode

    Running Snapper in ASH mode on a single sesson

    First, lets assume we've identified the SID of a badly behaving batch job's session is 144, let's run snapper in ASH mode, with 5 second snapshot length, once on SID 144: SQL>?@snapper?ash?5 1 144 Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ----------------------------------------------------------------------- Active%?| SQL_ID ? ? ? ? ?| EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS ----------------------------------------------------------------------- 100%?| 5htvg1rhy5dfv ? | enq: TM - contention ? ? ?| Application -- ?End of ASH snap 1, end=2010-03-22 19:54:09, seconds=5, samples_taken=42 PL/SQL procedure successfully completed. Here you go, the output happens to be pretty simple in this case. Let's see what it means:
    • Active%?is the actual measured metric - the activity of a session. That's the column which says how much of the response time during Snapper run this session spent doing the operation/activity listed on that output line.
    • So, 100% means here that this session (144) was executing the SQL_ID?5htvg1rhy5dfv?100% of its time!
    • While executing that SQL it also happened to be waiting for?enq: TM - contention?wait event all of the total time (the 5 seconds we spent sampling with Snapper).?
    As Snapper's ash functionality (just like ASH itself) works by regularly sampling V$SESSION (kind of taking a snapshot from it), it doesn't capture every single thing that the session does. However it does capture everything?significant. For example, we can't be fully sure that this session really was 100% doing the operation mentioned above, perhaps it was only busy running that SQLID and waiting for that event only 99% of its response time and it did something else for 1% of time. Snapper could just have missed this other 1% due sampling as this "other" thing happened so fast between 2 samples, so it wasn't captured. However when something happens infrequently and very fast so that it isn't even recorded in one sample of many taken, then it can't be too significant! If something takes 50% of the response time, then there will sure be some samples (roughly half of total taken) showing that "something" happening.? The footer of snapper report output shows when the snapshot period ended, over how many seconds the sampling was done and how many V$SESSION samples were done during that period. Above we see that Snapper took 42 ASH samples during the 5 seconds (over 8 samples per second). Snapper is written the way that it samples very fast when the snapshot period is short (up to 10 seconds) but lowers the sampling frequency when the snapshot period is longer, to reduce measurement overhead. Over long periods the sampling frequency will be 1Hz, one sampling per second just like ASH. Continuing the above example, we have identified that the session 144 was waiting for an enqueue lock all of its time. We probably want to know now who's blocking us and what kind of resource we were trying to lock. In case of enqueue lock waits, the wait event additional detail columns (Parameter2,3) will give us additional info about the object/resource we were trying to lock (look into V$LOCK type for their meanings). So we want to sample the?P2,P3?columns from V$SESSION to get more detailed info about this wait. Also, in case of enqueue waits we can sample V$SESSION.BLOCKING_SESSION?column (available from 10g) to see which session was blocking us.? So, instead of relying on the default ASH TOP activity grouping, I can specify these V$SESSION columns I want, using the?ASH=?syntax. Note that not all V$SESSION columns are available in Snapper, however the most important ones are. I can just specify the list of columns I want to sample, separated by?+?sign: SQL> @snapper?ash=sql_id+event+wait_class+blocking_session+p2+p3?5 1 144 Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ----------------------------------------------------------------------------------------------------------------------- Active% | SQL_ID ? ? ? ? ?| EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS ? ? ?| BLOCKING_SESSION ?| P2 ? ? ? ? ? | P3 ----------------------------------------------------------------------------------------------------------------------- 100% | 5htvg1rhy5dfv ? | enq: TM - contention ? ? ?| Application ? ? |?162?? ? ? ? ? ? ? |?78452?? ? ? ?| 0 -- ?End of ASH snap 1, end=2010-03-22 19:55:31, seconds=5, samples_taken=46 PL/SQL procedure successfully completed.
    Now we see the additional details immediately. The SID of our blocker is 162 (and I can run snapper on that session to see what it is doing) and the object ID of the locked object we are waiting for is 78452. The above example didn't really show the profiling capability of Snapper as the session was stuck running the same statement, waiting for the same thing. Let's see another example: SQL> @snapper ash 5 1 156 Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ----------------------------------------------------------------------- Active% | SQL_ID ? ? ? ? ?| EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS ----------------------------------------------------------------------- 36% | 3jbwa65aqmkvm ? | read by other session ? ? | User I/O 33% | 3jbwa65aqmkvm ? | direct path read ? ? ? ? ?| User I/O 28% | 3jbwa65aqmkvm ? | ON CPU ? ? ? ? ? ? ? ? ? ?| ON CPU 3% | 3jbwa65aqmkvm ? | db file sequential read ? | User I/O -- ?End of ASH snap 1, end=2010-03-22 19:50:11, seconds=5, samples_taken=36

    ?

    Apparently in this case the session is not stuck waiting for a single wait event only, it seems to be running the same SQL as all the SQL ID's in the TOP session activity report are the same, but during the execution of that SQL the session apparently waits for different wait events and also spends some time on CPU. See that the CPU usage of that session was 28% only during the Snapper run and 72% of the remaining response time is all spent on physical IO related wait events (36%+33%+3%).? So, when troubleshooting that session's performance, I would already know that 100% of the response time (during snapper run at least) was spent executing the SQL with ID?3jbwa65aqmkvm?and the execution process itself waited 72% of its time for IO, so now you know exactly into which SQL statement to look. Let's see one more example: SQL> @snapper ash 5 1 156 Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ----------------------------------------------------------------------- Active% | SQL_ID ? ? ? ? ?| EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS ----------------------------------------------------------------------- 30% | gvgdv2v90wfa7 ? | db file sequential read ? | User I/O 7% | 0bzhqhhj9mpaa ? | db file sequential read ? | User I/O 5% | 75621g9y3xmvd ? | db file sequential read ? | User I/O 5% | 05s4vdwsf5802 ? | db file sequential read ? | User I/O 5% | 5raw2bzx227wp ? | db file sequential read ? | User I/O 2% | 0yas01u2p9ch4 ? | db file sequential read ? | User I/O -- ?End of ASH snap 1, end=2010-03-22 19:50:29, seconds=5, samples_taken=43

    In this case it looks like there are many different statements executed during the 5-second snapper run. The TOP one seems to be the one which was active at least 30% of its time (and waiting for db file sequential read).?

    As there are multiple different statements reported, all taking a notable amount of response time - and all because of User I/O wait events, this may be a case for investigating IO subsystem problems (as suddenly all SQL statements report IO as their top waits). NB!?There's one more interesting and important thing to see - the sum of Active% samples is 54% only! This means that this session was ative only (roughly) 54% during the sampling time! Therefore the rest of time it was idle, waiting for next request to come in from the application, over the network. In cases where you see the database session being active only a small minority of time, then it doesn't make sense to tune anything in the database - you'll need to see why isn't the application sending new requests to the database fast enough.? The main reasons for session's being idle are simple:
    • User think time. User went to drink coffee or their PC is so slow that they can't do much with their application :-)
    • Application think time. This often happens when application servers are overloaded or have some bad code in them. The application is so busy or stuck so that it isn't able to send the requests to database and process resulting data too fast.
    • Lastly, network latency and throughput. I deliberately left this as last, as it makes sense to see what the (higher levels) users and applications are actually doing, instead of immediately assuming that the problem must be in network.
    Note that as I said earlier, Snapper is a tool for getting you the facts, performance numbers. It doesn't make performance recommendations for you, you still need to follow a systematic approach for troubleshooting and tuning, Snapper is tool which supports it. I will write more about systematic tuning & troubleshooting approach in my?living book?about Oracle Performance (or you could just attend one of?my seminars?;-) So, that's all about single session snapshots, but hey, Snapper can do more! Sometimes you have multiple sessions you want to measure, sometimes you don't even know the SIDs in advance and sometimes you want to see the whole instance activity. Snapper can help out here too!

    Running Snapper in ASH mode on all sessions (the whole instance)

    Making snapper to measure activity of all sessions is easy, you just specify?all?instead of the SID: SQL> @snapper?ash 5 1?all Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ----------------------------------------------------------------------- Active% | SQL_ID ? ? ? ? ?| EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS ----------------------------------------------------------------------- 69% | 3h1z39qtgwc5h ? | db file scattered read ? ?| User I/O 29% | fy8n9175jyj7s ? | db file scattered read ? ?| User I/O 9% | ? ? ? ? ? ? ? ? | log file parallel write ? | System I/O 2% | fy8n9175jyj7s ? | ON CPU ? ? ? ? ? ? ? ? ? ?| ON CPU 2% | ? ? ? ? ? ? ? ? | control file parallel wri | System I/O -- ?End of ASH snap 1, end=2010-03-22 17:33:17, seconds=5, samples_taken=45 PL/SQL procedure successfully completed. Note that the Active% shows still the response time of one (1) session! If let say 2 sessions are waiting for a lock all their response time, you'd see 200% wait time for it. Let say I want to break down how much individual sessions are waiting for some event, I can add?sid?column to the ASH parameter (as seen below), now the group by for TOP report is done by SID,event and wait_class: SQL> @snapper?ash=sid+event+wait_class?5 1 all Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) -------------------------------------------------------------- Active% | ? ?SID | EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS -------------------------------------------------------------- 95% | ? ?133?| db file scattered read ? ?| User I/O 8% | ? ?165 | control file parallel wri | System I/O 5% | ? ?133?| db file sequential read ? | User I/O -- ?End of ASH snap 1, end=2010-03-22 17:33:53, seconds=5, samples_taken=40 PL/SQL procedure successfully completed. See how the SID 133 had waited ~95% of its response time for?db file scattered read?and rest 5% for?db file sequential read.?The occasional CPU usage between IO operations was so short that Snapper's V$SESSION sampling didn't even see it, in other words, this session did not use CPU significantly during the Snapper run. Taking multiple Session Activity reports with Snapper ? Sometimes just one TOP report as seen above may not be enough. You might want to look into the session / instance activity data from multiple different angles (group the ASH samples by different fields). That's why I have added?ash1,?ash2?and?ash3?parameters to Snapper syntax, you can show up to 4 ASH TOP activity breakdowns in one Snapper run. For example, let say I want to break the session activity down by also PLSQL package's object_id and procedure ID in it, to see whether there's some PL/SQL package causing most of the work (these columns are available from 10.2.0.3 in V$SESSION): ? SQL> @snapper ash=sid+event+wait_class,ash1=plsql_object_id+plsql_subprogram_id+sql_id?5 1 all Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) -------------------------------------------------------------- Active% | ? ?SID | EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS -------------------------------------------------------------- 70% | ? ?133 | db file scattered read ? ?| User I/O 25% | ? ?133 | db file sequential read ? | User I/O 9% | ? ?165 | control file parallel wri | System I/O 7% | ? ?166 | log file parallel write ? | System I/O 5% | ? ?133 | ON CPU ? ? ? ? ? ? ? ? ? ?| ON CPU --------------------------------------------------- Active% | PLSQL_OBJE | PLSQL_SUBP | SQL_ID --------------------------------------------------- 43% | ? ? ? ? ? ?| ? ? ? ? ? ?| dv59rkngpa8m1 30% | ? ? ? ? ? ?| ? ? ? ? ? ?| b8qywu6ug00u3 23% | ? ? ? ? ? ?| ? ? ? ? ? ?| fgkm2nvqhyyqh 16% | ? ? ? ? ? ?| ? ? ? ? ? ?| 2% |?5357?? ? ? | 135 ? ? ? ?| 82hxvr8kxuzjq 2% | 4345 ? ? ? | 105 ? ? ? ?| 1gu8t96d0bdmu -- ?End of ASH snap 1, end=2010-03-22 17:34:51, seconds=5, samples_taken=44 Let say I want to include one more report, which shows me TOP program, module and action from the session activity samples: SQL> @snapper ash=sid+event+wait_class,ash1=plsql_object_id+plsql_subprogram_id+sql_id,ash2=program+module+action?5 1 all Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) -------------------------------------------------------------- Active% | ? ?SID | EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS -------------------------------------------------------------- 100% | ? ?133 | db file scattered read ? ?| User I/O 5% | ? ?165 | control file parallel wri | System I/O 2% | ? ?162 | ON CPU ? ? ? ? ? ? ? ? ? ?| ON CPU 2% | ? ?167 | db file parallel write ? ?| System I/O 2% | ? ?166 | log file parallel write ? | System I/O --------------------------------------------------- Active% | PLSQL_OBJE | PLSQL_SUBP | SQL_ID --------------------------------------------------- 77% | ? ? ? ? ? ?| ? ? ? ? ? ?| a5xyjp9gt796s 23% | ? ? ? ? ? ?| ? ? ? ? ? ?| 4g4u44bk830ms 12% | ? ? ? ? ? ?| ? ? ? ? ? ?| ------------------------------------------------------------------------------------------- Active% | PROGRAM ? ? ? ? ? ? ? ? ? | MODULE ? ? ? ? ? ? ? ? ? ?| ACTION ------------------------------------------------------------------------------------------- 100% | sqlplus@mac01 (TNS V1-V3) | sqlplus@mac01 (TNS V1-V3) | 5% | oracle@solaris02 (CKPT) ? | ? ? ? ? ? ? ? ? ? ? ? ? ? | 2% | oracle@solaris02 (DBW0) ? | ? ? ? ? ? ? ? ? ? ? ? ? ? | 2% | oracle@solaris02 (CJQ0) ? | ? ? ? ? ? ? ? ? ? ? ? ? ? | 2% | oracle@solaris02 (LGWR) ? | ? ? ? ? ? ? ? ? ? ? ? ? ? | -- ?End of ASH snap 1, end=2010-03-22 17:35:06, seconds=5, samples_taken=43
    Similarly you can use?ash3?parameter. Note that if you just use the?ash?parameters without = and column list, it uses some default TOP groupings, which are configurable - look for CONFIG in snapper.sql file. All the stuff above is available from Snapper v3. However it's only a part of Snapper's full capabilities. Sometimes knowing the TOP SQL_ID and wait event is not enough. Think about cases where a session is 100% on CPU and doesn't wait for anything and there's nothing obviously wrong with the SQL execution plan. This is when you want to know?what?exactly is the session doing. This is where the Oracle's dynamic performance counters come into play - I'm talking mainly about V$SESSTAT statistics:

    Snapper V$ Performance Counter / Statistics mode?

    Snapper has had the Statistics mode since version 1. That's the reason why I initially wrote Snapper, to help me with performance troubleshooting, especially in cases where the conventional tools like SQL trace or instance-level performance tools like AWR/Statspack didn't show anything useful. Starting from v3, Snapper does not automatically show you the V$SESSTAT stats, as Snapper is meant to be used as an instance-wide troubleshooting tool now as well (and querying V$SESSTAT for all sessions may be expensive when you have thousands of sessions in your instance).

    So, if you want to drill down to V$SESSTAT samples, you'll need to use?stats?parameter, which tells Snapper to take snapshots of V$SESSTAT and other V$ views (or instead you could useall?which enables both?ash?and?stats) Additionally you can specify what kind of stats to capture, in the?gather?option. The options are?following?(taken directly from documentation section in Snapper script's header):
    • Session-level stats:
      • s - Session Statistics from?v$sesstat
      • t - Session Time model info from?v$sess_time_model
      • w - Session Wait statistics from?v$session_event?and?v$session_wait
    • Instance-level stats:
      • L - instance Latch get statistics ( gets + immediate_gets ) from?v$latch
      • e - instance Enqueue lock get statistics from?v$enqueue_stat
      • b - buffer get Where statistics from?x$kcbsw?-- useful in versions up to 10.2.x
      • a - All above
    If the?gather?option is omitted (but?stats?is enabled) then Snapper will collect the session level stats (s,t,w) only. An example follows, I'm taking ash session activity snapshots from all sessions, but I also ask Snapper to gather Time Model Stats (t) and V$SESSTAT stats (s), but only include time model stats (tinclude) which have string %CPU% in the name and include only these V$SESSTAT stats (sinclude) which contain word %parse%: SQL> @snapper ash=event+wait_class,stats,gather=ts,tinclude=CPU,sinclude=parse?5 1 all Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ---------------------------------------------------------------------------------------------------------------------- SID, USERNAME ?, TYPE, STATISTIC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? , ? ? ? ? DELTA, HDELTA/SEC, ? ?%TIME, GRAPH ---------------------------------------------------------------------------------------------------------------------- 119, SYS ? ? ? , STAT, parse count (total) ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ? ?12, ? ? ? ?2.4, 133, SYS ? ? ? , STAT, parse time cpu ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? 404, ? ? ? 80.8, 133, SYS ? ? ? , STAT, parse time elapsed ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? 418, ? ? ? 83.6, 133, SYS ? ? ? , STAT,?parse count (total) ? ? ? ? ? ? ? ? ? ? , ? ? ????11241, ? ? ?2.25k, 133, SYS ? ? ? , STAT,?parse count (hard) ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ??11241, ? ? ?2.25k, 159, (J000) ? ?, TIME,?DB CPU?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? 859, ? ?171.8us, ? ? ?.0%, | ? ? ? ? ?| 161, (MMON) ? ?, STAT, parse count (total) ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ? ? 5, ? ? ? ? ?1, 161, (MMON) ? ?, STAT, parse count (hard) ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? ? 3, ? ? ? ? .6, 161, (MMON) ? ?, TIME, background cpu time ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ?8629, ? ? 1.73ms, ? ? ?.2%, | ? ? ? ? ?| 162, (CJQ0) ? ?, STAT, parse count (total) ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ? ? 1, ? ? ? ? .2, 162, (CJQ0) ? ?, TIME, background cpu time ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ?3242, ? ?648.4us, ? ? ?.1%, | ? ? ? ? ?| 167, (DBW0) ? ?, TIME, background cpu time ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ? 142, ? ? 28.4us, ? ? ?.0%, | ? ? ? ? ?| 170, (PMON) ? ?, TIME, background cpu time ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ?1267, ? ?253.4us, ? ? ?.0%, | ? ? ? ? ?| -- ?End of Stats snap 1, end=2010-03-22 18:02:28, seconds=5 ----------------------------------------------------- Active% | EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS ----------------------------------------------------- 105% | ON CPU ? ? ? ? ? ? ? ? ? ?| ON CPU 17% | db file sequential read ? | User I/O 2% | log file parallel write ? | System I/O -- ?End of ASH snap 1, end=2010-03-22 18:02:28, seconds=5, samples_taken=41 PL/SQL procedure successfully completed.
    In upper part of above output, see how Snapper's stats mode will easily bring out a session 133 which is doing 2.25 thousand hard parses per second (which is a lot!). I could use any of the other stats available in V$SESSTAT (over 600 different stats for each session in Oracle 11.2). For example if I had used "redo size" in?sinclude?parameter, I would have easily seen which session generates the most redo. Another thing to note is that even though the ASH section below says there was CPU activity worth of 105% of a single session's response time (which means that there must have been more than one session using that CPU), the time model stats above (stats with type=TIME) don't report significant DB CPU usage at all. The problem here is measurement granularity. Time model stats are updated in the V$ views only in the end of the database call, but if the database call is a long-running one (like in my test case) then the stats in V$SESS_TIME_MODEL are updated roughly every 5 seconds by default. Thanks to my short Snapper run time (5 seconds) the script apparently finished before the V$SESS_TIME_MODEL in-memory array update took place by that session with the long running database call. If you run snapper with longer sampling time, like 60 second, you should see all the time model stats in place. So far we've covered how to run snapper on one session or the whole instance. Sometimes you'd want to monitor all sessions of a specific user, service or program. This is possible in Snapper too:

    Running snapper on a subset of instances sessions

    Starting from v3, Snapper has convenient ways for specifying sessions belonging so specific user, application, service, etc. For example, instead of specifying the SID as 4th parameter, you can just write user=XYZ?(or username=XYZ): SQL> @snapper ash=sid+event+wait_class,ash1=sid+sqlid+module,stats,gather=ts,tinclude=CPU,sinclude=parse 5 1?user=SOE Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ---------------------------------------------------------------------------------------------------------------------- SID, USERNAME ?, TYPE, STATISTIC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? , ? ? ? ? DELTA, HDELTA/SEC, ? ?%TIME, GRAPH ---------------------------------------------------------------------------------------------------------------------- 9, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 30000, ? ? ? ?6ms, ? ? ?.6%, |@ ? ? ? ? | 17, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 70000, ? ? ? 14ms, ? ? 1.4%, |@ ? ? ? ? | 21, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 30000, ? ? ? ?6ms, ? ? ?.6%, |@ ? ? ? ? | 144, SOE ? ? ? , STAT, parse count (total) ? ? ? ? ? ? ? ? ? ? , ? ? ? ? ? ? 2, ? ? ? ? .4, 144, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ?370000, ? ? ? 74ms, ? ? 7.4%, |@ ? ? ? ? | 156, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 50000, ? ? ? 10ms, ? ? 1.0%, |@ ? ? ? ? | -- ?End of Stats snap 1, end=2010-03-22 18:34:09, seconds=5 -------------------------------------------------------------- Active% | ? ?SID | EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS -------------------------------------------------------------- 100% | ? ? 21 | read by other session ? ? | User I/O 93% | ? ?144 | read by other session ? ? | User I/O 83% | ? ?156 | read by other session ? ? | User I/O 73% | ? ? ?9 | read by other session ? ? | User I/O 54% | ? ? 17 | db file scattered read ? ?| User I/O 27% | ? ? ?9 | db file scattered read ? ?| User I/O 27% | ? ? 17 | read by other session ? ? | User I/O 17% | ? ?156 | db file scattered read ? ?| User I/O 17% | ? ? 17 | direct path read ? ? ? ? ?| User I/O 7% | ? ?144 | ON CPU ? ? ? ? ? ? ? ? ? ?| ON CPU -------------------------------------------------------------- Active% | ? ?SID | SQL_ID ? ? ? ? ?| MODULE -------------------------------------------------------------- 100% | ? ? 21 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ? ?9 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ?144 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ?156 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ? 17 | 3jbwa65aqmkvm ? | Process Orders -- ?End of ASH snap 1, end=2010-03-22 18:34:09, seconds=5, samples_taken=41 Thanks to the parameters specified above (ash and ash1) we do get different breakdowns of the same session activity data and we have measured only the sessions belonging to user SOE (in other words, where username='SOE' in V$SESSION). In additon to?user?you can use other (self-explanatory) parameters:
  • username (same as user)
  • sid
  • spid (same as pid and ospid)
  • program
  • machine
  • osuser
  • module
  • action
  • client_id
  • You can not combine these parameters into any AND or OR conditions though, you can only pass in one parameter at a time using the above convenient syntax. However if you want to be very precise about what sessions Snapper monitors (if you want to add multiple and/or conditions to select sessions of interest), then you can do the session selection the old way (supported in Snapper v1 and v2), check the red text: SQL> @snapper ash=sid+event+wait_class,ash1=sid+sqlid+module,stats,gather=ts,tinclude=CPU,sinclude=parse 5 1?"select sid from v$session where username = 'SOE' and program like 'JDBC%'" Sampling... -- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com ) ---------------------------------------------------------------------------------------------------------------------- SID, USERNAME ?, TYPE, STATISTIC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? , ? ? ? ? DELTA, HDELTA/SEC, ? ?%TIME, GRAPH ---------------------------------------------------------------------------------------------------------------------- 9, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 50000, ? ? ? 10ms, ? ? 1.0%, |@ ? ? ? ? | 17, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 60000, ? ? ? 12ms, ? ? 1.2%, |@ ? ? ? ? | 21, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 70000, ? ? ? 14ms, ? ? 1.4%, |@ ? ? ? ? | 144, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 60000, ? ? ? 12ms, ? ? 1.2%, |@ ? ? ? ? | 156, SOE ? ? ? , TIME, DB CPU ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? 50000, ? ? ? 10ms, ? ? 1.0%, |@ ? ? ? ? | -- ?End of Stats snap 1, end=2010-03-22 18:34:32, seconds=5 -------------------------------------------------------------- Active% | ? ?SID | EVENT ? ? ? ? ? ? ? ? ? ? | WAIT_CLASS -------------------------------------------------------------- 97% | ? ? ?9 | read by other session ? ? | User I/O 74% | ? ?144 | direct path read ? ? ? ? ?| User I/O 72% | ? ?156 | db file scattered read ? ?| User I/O 72% | ? ? 21 | direct path read ? ? ? ? ?| User I/O 72% | ? ? 17 | direct path read ? ? ? ? ?| User I/O 28% | ? ?156 | read by other session ? ? | User I/O 26% | ? ? 17 | db file scattered read ? ?| User I/O 26% | ? ? 21 | read by other session ? ? | User I/O 26% | ? ?144 | read by other session ? ? | User I/O 3% | ? ? ?9 | db file scattered read ? ?| User I/O -------------------------------------------------------------- Active% | ? ?SID | SQL_ID ? ? ? ? ?| MODULE -------------------------------------------------------------- 100% | ? ? 21 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ? ?9 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ?144 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ?156 | 3jbwa65aqmkvm ? | Process Orders 100% | ? ? 17 | 3jbwa65aqmkvm ? | Process Orders -- ?End of ASH snap 1, end=2010-03-22 18:34:32, seconds=5, samples_taken=39 PL/SQL procedure successfully completed. SQL>?
    You can write any subquery between double-quotes as the SID parameter, as long as it fits onto the command line and returns a single number column with a list of SIDs in it! In my case I "select SID from V$SESSION where ...." but this query doesn't even have to query V$SESSION, but may query let say some E-Business Suite, PeopleSoft or SAP batch job scheduling table (with currently running batch jobs SIDs in it) instead!







    腳本內容:

    ---------------------------------------------------------------------------- -- -- File name: snapper.sql (Oracle Session Snapper v4) -- Purpose: An easy to use Oracle session-level performance measurement tool -- which does NOT require any database changes nor creation of any -- database objects! -- -- This is very useful for ad-hoc performance diagnosis in environments -- with restrictive change management processes, where creating -- even temporary tables and PL/SQL packages is not allowed or would -- take too much time to get approved. -- -- All processing is done by a few sqlplus commands and an anonymous -- PL/SQL block, all that's needed is SQLPLUS access (and if you want -- to output data to server-side tracefile then execute rights on -- DBMS_SYSTEM). Snapper only queries some V$ views (and in advanced -- mode some X$ fixed tables, but it does not enable any traces nor -- use oradebug. -- -- The output is formatted the way it could be easily post-processed -- by either Unix string manipulation tools or loaded to spreadsheet. -- -- Snapper v4.20 Oracle 12c CDB and PDB grouping -- Snapper v4 supports RAC and requires Oracle 10.1 or a newer DB version. -- Snapper v3.5 works on Oracle versions starting from Oracle 9.2 (no RAC support) -- -- Note1: The "ASH" functionality in Snapper just samples GV$SESSION view, -- so you do NOT need Diagnostics Pack licenses to use Snapper's -- "ASH" output -- -- Note2: Snapper just reports you performance metric deltas in a snapsphot -- and does not attempt to solve any performance problems for you. -- You still need to interpret and understand these standard Oracle -- metrics yourself -- -- Author: Tanel Poder (tanel@tanelpoder.com) -- Copyright: (c) Tanel Poder - http://blog.tanelpoder.com - All rights reserved. -- -- Disclaimer: This script is provided "as is", so no warranties or guarantees are -- made about its correctness, reliability and safety. Use it at your -- own risk! -- -- License: 1) You may use this script for your (or your businesses) purposes for free -- 2) You may modify this script as you like for your own (or your businesses) purpose, -- but you must always leave this script header (the entire comment section), including the -- author, copyright and license sections as the first thing in the beginning of this file -- 3) You may NOT publish or distribute this script or any variation of it PUBLICLY -- (including, but not limited to uploading it to your public website or ftp server), -- instead just link to its location in blog.tanelpoder.com -- 4) You may distribute this script INTERNALLY in your company, for internal use only, -- for example when building a standard DBA toolset to be deployed to all -- servers or DBA workstations -- -- -- Thanks to: Adrian Billington, Jamey Johnston, Marcus M?nnig, Hans-Peter Sloot, -- Ronald Rood and Peter Bach for bugfixes, additions and improvements -- -------------------------------------------------------------------------------- -- -- The Session Snapper v4.24 ( USE AT YOUR OWN RISK !!! ) -- (c) Tanel Poder ( http://blog.tanelpoder.com ) -- -- -- +-----=====O=== Welcome to The Session Snapper! (Yes, you are looking at a cheap ASCII -- / imitation of a fish and a fishing rod. -- | Nevertheless the PL/SQL code below the -- | fish itself should be helpful for quick -- | catching of relevant Oracle performance -- | information. -- | So I wish you happy... um... snapping? -- | ) -- | ...... -- | iittii,,.... -- ? iiffffjjjjtttt,, -- ..;;ttffLLLLffLLLLLLffjjtt;;.. -- ..ttLLGGGGGGLLffLLLLLLLLLLLLLLffjjii,, ..ii,, -- ffGGffLLLLLLjjttjjjjjjjjffLLLLLLLLLLjjii.. ..iijj;;.... -- ffGGLLiittjjttttttiittttttttttffLLLLLLGGffii.. ;;LLLLii;;;;.. -- ffEEGGffiittiittttttttttiiiiiiiittjjjjffLLGGLLii.. iiLLLLLLttiiii,, -- ;;ffDDLLiiiitt,,ttttttttttttiiiiiiiijjjjjjffLLLLffttiiiiffLLGGLLjjtttt;;.. -- ..ttttjjiitt,,iiiiiittttttttjjjjttttttttjjjjttttjjttttjjjjffLLDDGGLLttii.. -- iittiitttt, ;;iittttttttjjjjjjjjjjttjjjjjjffffffjjjjjjjjjjLLDDGGLLtt;;.. -- jjjjttttii:. ..iiiiffLLGGLLLLLLLLffffffLLLLLLLLLLLLLLLLffffffLLLLLLfftt,, -- iittttii,,;;,,ttiiiiLLLLffffffjjffffLLLLLLLLffLLffjjttttttttttjjjjffjjii.. -- ,,iiiiiiiiiittttttiiiiiiiiiijjffffLLLLLLLLffLLffttttttii;;;;iiiitttttttt;;.. -- ..iittttttffffttttiiiiiiiiiittttffjjjjffffffffttiittii:: ....,,;;iittii;; -- ..;;iittttttttttttttttiiiiiittttttttttjjjjjjtttttt;; ..;;ii;;.. -- ..;;;;iittttttjjttiittttttttttttttjjttttttttii.. .... -- ....;;;;ttjjttttiiiiii;;;;;;iittttiiii.. -- ..;;ttttii;;.... ..;;;;.... -- ..iiii;;.. -- ..;;,, -- .... -- -- -- Usage: -- -- snapper.sql <ash[1-3]|stats|all>[,out][,trace][,pagesize=X][,gather=[s][t][w][l][e][b][a]]> <seconds_in_snap> <snapshot_count> <sid(s)_to_snap> -- -- ash - sample session activity ASH style, waits and SQL_IDs from gv$session and -- print a TOP SQL/wait report from these samples (this is the default from -- Snapper 3.0). The columns chosen for TOP calculation are defined in CONFIG -- section below. -- -- ash=sql_id+event+wait_class -- - the above example illustrates that you can also specify the gv$session -- columns for TOP report yourself. The above example will show a TOP -- activity report grouped by SQL_ID + EVENT + WAIT_CLASS -- Note that the columns are separated by a "+" sign (as comma is a snapper -- parameter separator, not ASH column separator) -- -- ash1 -- ash2 -- ash3 - in addition to "ash" report you can have 3 more reported during the same -- snapper sampling snapshot. Just include ash1=col1+col2,ash2=col3+col4,... -- parameters if you want multiple TOP reports per Snapper snapshot -- -- stats - sample gv$sesstat,gv$sess_time_model,gv$session_event performance counters -- and report how much these stats increased (deltas) during Snapper run -- all - report both ASH and stats sections -- -- out - use dbms_output.put_line() for output. output will be seen only when -- Snapper run completes due to dbms_output limitations. This is the default. -- trace - write output to server process tracefile -- (you must have execute permission on sys.dbms_system.ksdwrt() for that, -- you can use both out and trace parameters together if you like ) -- -- pagesize - display header lines after X snapshots. if pagesize=0 don't display -- any headers. pagesize=-1 will display a terse header only once -- -- gather - if omitted, gathers s,t,w statistics (see below) -- - if specified, then gather following: -- -- Session-level stats: -- s - Session Statistics from gv$sesstat -- t - Session Time model info from gv$sess_time_model -- w - Session Wait statistics from gv$session_event and gv$session_wait -- -- Instance-level stats: -- l - instance Latch get statistics ( gets + immediate_gets ) -- e - instance Enqueue lock get statistics -- b - buffer get Where statistics -- useful in versions up to 10.2.x -- a - All above -- -- sinclude - if specified, then show only GV$SESSTAT stats which match the -- LIKE pattern of sinclude (REGEXP_LIKE in 10g+) -- linclude - if specified, then show only GV$LATCH latch stats which match the -- LIKE pattern of linclude (REGEXP_LIKE in 10g+) -- tinclude - if specified, then show only GV$SESS_TIME_MODEL stats which match the -- LIKE pattern of tinclude (REGEXP_LIKE in 10g+) -- winclude - if specified, then show only GV$SESSION_EVENT wait stats which match the -- LIKE pattern of winclude (REGEXP_LIKE in 10g+) -- -- you can combine above parameters in any order, separate them by commas -- !!!don't use spaces as otherwise they are treated as next parameters by sqlplus !!! -- !!!if you want to use spaces, enclose the whole sqlplus parameter in doublequotes !!! -- -- <seconds_in_snap> - the number of seconds between taking snapshots -- <snapshot_count> - the number of snapshots to take ( maximum value is power(2,31)-1 ) -- -- <sids_to_snap> can be either one sessionid, multiple sessionids separated by -- commas or a SQL statement which returns a list of SIDs (if you need spaces -- in that parameter text, enclose it in double quotes). -- -- if you want to snap ALL sids, use "all" as value for -- <sids_to_snap> parameter -- -- alternatively you can use "select sid from gv$session" as value for <sids_to_snap> -- parameter to capture all SIDs. you can write any query (with multiple and/or) -- conditions to specify complex rules for capturing only the SIDs you want -- -- starting from version 3.0 there are further session_id selection options available in -- instead of sid you can write such expressions for snapper's <sids_to_snap> parameter: -- -- sid=123 -- take sid 123 only (the same as just writing 123) -- user=tanel -- take all sessions where username is 'tanel' (case insensitive) -- -- this is the same as writing following subquery for the -- -- <sids_to_snap> parameter: -- select sid from gv$session where lower(username) like lower('tanel') -- -- user=tanel% -- take all sessions where username begins with 'tanel%' (case insensitive) -- -- the = means actually LIKE in SQL terms in this script -- -- spid=1234 -- all these 3 parameters do the same thing: -- ospid=1234 -- they look up the sessions(s) where the processes OS PID=1234 -- pid=1234 -- this is useful for quickly looking up what some OS process is doing -- -- if it consumes too much of some resource -- qc=123 -- qcsid=123 -- show query coordinator and all PX slave sessions -- -- program=sqlplus% -- the following examples filter by corresponding gv$session coulmns -- machine=linux01 -- machine -- osuser=oracle -- os username -- module=HR -- module -- "action=Find Order" -- note the quotes because there is a space inside the parameter -- -- value -- client_id=tanelpoder -- show only sessions where client_identifier is set to tanelpoder -- -- this is very useful in cases with (properly instrumented) -- -- connection pools -- -- -- Note that if you want to change some "advanced" snapper configuration parameters -- or default values then search for CONFIG in this file to see configurable -- variable section -- -- -- Examples: -- NB! Read the online examples, these are more detailed and list script output too! -- -- http://tech.e2sn.com/oracle-scripts-and-tools/session-snapper -- -- @snapper ash,stats 1 1 515 -- (Output one 1-second snapshot of session 515 using dbms_output and exit -- Wait, gv$sesstat and gv$sess_time_model statistics are reported by default -- Starting from V3 the ASH style session activity report is shown as well) -- -- @snapper stats,gather=w 1 1 515 -- (Output one 1-second snapshot of session 515 using dbms_output and exit -- only Wait event statistics are reported, no ASH) -- -- @snapper ash,gather=st 1 1 515 -- (Output one 1-second snapshot of session 515 using dbms_output and exit -- only gv$sesstat and gv$sess_Time_model statistics are gathered + ASH) -- -- @snapper trace,ash,gather=stw,pagesize=0 10 90 117,210,313 -- (Write 90 10-second snapshots into tracefile for session IDs 117,210,313 -- all statistics are reported, do not print any headers) -- -- @snapper trace,ash 900 999999999 "select sid from v$session" -- (Take a snapshot of ALL sessions every 15 minutes and write the output to trace, -- loop (almost) forever ) -- -- @snapper out,trace 300 12 "select sid from v$session where username='APPS'" -- (Take 12 5-minute snapshots of all sessions belonging to APPS user, write -- output to both dbms_output and tracefile) -- -- Notes: -- -- Snapper does not currently detect if a session with given SID has -- ended and been recreated between snapshots, thus it may report bogus -- statistics for such sessions. The check and warning for that will be -- implemented in a future version. -- --------------------------------------------------------------------------------set termout off tab off verify off linesize 999 trimspool on trimout on null ""--debug: -- set termout on serveroutput on-- Get parameters (future snapper v4.x extended syntax: @snapper <options> <"begin"|"end"|sleep#> <"snap_name"|snap_count> <sid>) define snapper_options="&1" define snapper_sleep="&2" define snapper_count="&3" define snapper_sid="&4"-- The following code is required for making this script "dynamic" as due to -- different Oracle versions, script parameters or granted privileges some -- statements might not compile if not adjusted properly.define _IF_ORA12_OR_HIGHER="--" define _IF_LOWER_THAN_ORA12="--" define _IF_ORA11_OR_HIGHER="--" define _IF_LOWER_THAN_ORA11="--" define _IF_DBMS_SYSTEM_ACCESSIBLE="/* dbms_system is not accessible" -- /*dummy*/ -- this "dummy" is here just for avoiding VIM syntax highlighter going crazy due to previous line define _IF_X_ACCESSIBLE="--"-- plsql_object_id columns available in v$session (from 10.2.0.3) define _YES_PLSQL_OBJ_ID="--" define _NO_PLSQL_OBJ_ID="" -- blocking_instance available in v$session (from 10.2) define _YES_BLK_INST="--" define _NO_BLK_INST=""-- snapper v4 manual before/after snapshotting define _MANUAL_SNAPSHOT="--" define _USE_DBMS_LOCK=""-- set the noprint's value to "noprint" if you don't want these temporary variables to show up in a sqlplus spool file -- however, setting noprint="noprint" can cause errors in Oracle SQL Developer v4.0.x for some reason (OK in v4.1) DEF noprint="" col snapper_ora12higher &noprint new_value _IF_ORA12_OR_HIGHER col snapper_ora12lower &noprint new_value _IF_LOWER_THAN_ORA12 col snapper_ora12 &noprint new_value _IF_ORA12_OR_HIGHER col snapper_ora11higher &noprint new_value _IF_ORA11_OR_HIGHER col snapper_ora11lower &noprint new_value _IF_LOWER_THAN_ORA11 col dbms_system_accessible &noprint new_value _IF_DBMS_SYSTEM_ACCESSIBLE col x_accessible &noprint new_value _IF_X_ACCESSIBLE col no_plsql_obj_id &noprint new_value _NO_PLSQL_OBJ_ID col yes_plsql_obj_id &noprint new_value _YES_PLSQL_OBJ_ID col no_blk_inst &noprint new_value _NO_BLK_INST col yes_blk_inst &noprint new_value _YES_BLK_INST col manual_snapshot &noprint new_value _MANUAL_SNAPSHOT col use_dbms_lock &noprint new_value _USE_DBMS_LOCKcol snapper_sid &noprint new_value snapper_sid-- sid_filter and inst_filter are the new RAC gv$ friendly way to filter sessions in Snapper v4 def sid_filter="/**/" def inst_filter="/**/" col sid_filter &noprint new_value sid_filter col inst_filter &noprint new_value inst_filter-- initialize, precompute and determine stuff var v varchar2(100) var x varchar2(10) var sid_filter varchar2(4000) var inst_filter varchar2(4000)-- this is here for a reason -- im extracting the first word of the snapper_sid (if its a complex expression, not just a single SID) -- by relying on how DEF and & assignment treat spaces in strings def ssid_begin=&snapper_siddeclareo sys.dbms_describe.number_table;p sys.dbms_describe.number_table;l sys.dbms_describe.number_table;a sys.dbms_describe.varchar2_table;dty sys.dbms_describe.number_table;def sys.dbms_describe.number_table;inout sys.dbms_describe.number_table;len sys.dbms_describe.number_table;prec sys.dbms_describe.number_table;scal sys.dbms_describe.number_table;rad sys.dbms_describe.number_table;spa sys.dbms_describe.number_table;tmp number;lv_sid_filter varchar2(4000);lv_inst_filter varchar2(4000);function get_filter(str in varchar2) return varchar2isret varchar2(1000);beginif str like '%@%' then --dbms_output.put_line('get_filter:1 str= '||str);ret := lower(trim(regexp_replace(substr(str,instr(str,'=')+1), '^(.+)@([[:digit:]\*]+)(.*)', '\1')));else--dbms_output.put_line('get_filter:2 str= '||str);ret := lower(trim(substr(str,instr(str,'=')+1)));end if;--dbms_output.put_line('get_filter = ' || ret);return ret;end get_filter;begin-- compute inst_filtercase when regexp_instr('&ssid_begin','@') = 0 then lv_inst_filter := '/* inst_filter */ s.inst_id=USERENV(''Instance'')';when regexp_instr('&ssid_begin','@\*') > 0 or '&ssid_begin' like '(%' then lv_inst_filter := '/* inst_filter */ 1=1';when regexp_instr('&ssid_begin','@\d+') > 0 then lv_inst_filter := 's.inst_id = ' || regexp_replace('&ssid_begin', '^(.+)@(\d+)(.*)', '\2');elselv_inst_filter := 's.inst_id=USERENV(''Instance'')';--when regexp_instr('&ssid_begin','@\d+') > 0 then regexp_replace(snapper_sid, '^(.+)@\d+', '\1') || ' AND inst_id = ' || regexp_replace(snapper_sid, '^(.+)@(\d+)(.*)', '\2') end case;-- compute sid_filtercasewhen trim(lower('&ssid_begin')) like 'con_id=%' then lv_sid_filter := 's.con_id in ('||get_filter('&ssid_begin')||')';when trim(lower('&ssid_begin')) like 'sid=%' then lv_sid_filter := 's.sid in (' ||get_filter('&ssid_begin')||')'; when trim(lower('&ssid_begin')) like 'audsid=%' then lv_sid_filter := 's.audsid in ('||get_filter('&ssid_begin')||')'; when trim(lower('&ssid_begin')) like 'user=%' then lv_sid_filter := 'lower(username) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'username=%' then lv_sid_filter := 'lower(username) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'machine=%' then lv_sid_filter := 'lower(machine) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'program=%' then lv_sid_filter := 'lower(program) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'service=%' then lv_sid_filter := 'lower(service_name) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'module=%' then lv_sid_filter := 'lower(module) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'action=%' then lv_sid_filter := 'lower(action) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'osuser=%' then lv_sid_filter := 'lower(osuser) like ''' ||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'client_id=%' then lv_sid_filter := 'lower(client_identifier) like '''||get_filter('&ssid_begin')||'''';when trim(lower('&ssid_begin')) like 'spid=%' then lv_sid_filter := '(s.inst_id,s.paddr) in (select /*+ UNNEST */ inst_id,addr from gv$process where spid in ('||get_filter('&ssid_begin')||'))';when trim(lower('&ssid_begin')) like 'ospid=%' then lv_sid_filter := '(s.inst_id,s.paddr) in (select /*+ UNNEST */ inst_id,addr from gv$process where spid in ('||get_filter('&ssid_begin')||'))';when trim(lower('&ssid_begin')) like 'pid=%' then lv_sid_filter := '(s.inst_id,s.paddr) in (select /*+ UNNEST */ inst_id,addr from gv$process where spid in ('||get_filter('&ssid_begin')||'))';when trim(lower('&ssid_begin')) like 'qcsid=%' then lv_sid_filter := '(s.inst_id,s.sid) in (select /*+ NO_UNNEST */ inst_id,sid from gv$px_session where qcsid in ('||get_filter('&ssid_begin')||'))';when trim(lower('&ssid_begin')) like 'qc=%' then lv_sid_filter := '(s.inst_id,s.sid) in (select /*+ NO_UNNEST */ inst_id,sid from gv$px_session where qcsid in ('||get_filter('&ssid_begin')||'))';when trim(lower('&ssid_begin')) like 'all%' then lv_sid_filter := '1=1';when trim(lower('&ssid_begin')) like 'bg%' then lv_sid_filter := 'type=''BACKGROUND''';when trim(lower('&ssid_begin')) like 'fg%' then lv_sid_filter := 'type=''USER''';when trim(lower('&ssid_begin')) like 'smon%' then lv_sid_filter := 'program like ''%(SMON)%''';when trim(lower('&ssid_begin')) like 'pmon%' then lv_sid_filter := 'program like ''%(PMON)%''';when trim(lower('&ssid_begin')) like 'ckpt%' then lv_sid_filter := 'program like ''%(CKPT)%''';when trim(lower('&ssid_begin')) like 'lgwr%' then lv_sid_filter := 'program like ''%(LG__)%'''; -- 12c multiple adaptive LGWR workerswhen trim(lower('&ssid_begin')) like 'dbwr%' then lv_sid_filter := 'regexp_like(program, ''.*\((DBW.|BW..)\).*'', ''i'')';when trim(lower('&ssid_begin')) like 'select%' then lv_sid_filter := q'{(s.inst_id,s.sid) in (&snapper_sid)}';when trim(lower('&ssid_begin')) like '(%' then lv_inst_filter := '/* inst_filter2 */ 1=1'; lv_sid_filter := q'{(s.inst_id,s.sid) in (&snapper_sid)}'; else lv_sid_filter := '/* sid_filter_else_cond */ s.sid in ('||get_filter('&ssid_begin')||')'; end case;:inst_filter := lv_inst_filter;:sid_filter := lv_inst_filter||' and '||lv_sid_filter;-- this block determines whether dbms_system.ksdwrt is accessible to us-- dbms_describe is required as all_procedures/all_objects may show this object-- even if its not executable by us (thanks to o7_dictionary_accessibility=false)beginexecute immediate 'select count(*) from x$kcbwh where rownum = 1' into tmp;:x:= ' '; -- x$ tables are accessible, so dont comment any lines outexceptionwhen others then null;end;sys.dbms_describe.describe_procedure('DBMS_SYSTEM.KSDWRT', null, null,o, p, l, a, dty, def, inout, len, prec, scal, rad, spa);-- we never get to following statement if dbms_system is not accessible-- as sys.dbms_describe will raise an exception:v:= '-- dbms_system is accessible';exceptionwhen others then null; end; /-- this query populates some sqlplus variables required for dynamic compilation used below with mod_banner as (selectreplace(banner,'9.','09.') bannerfromv$versionwhere rownum = 1 ) selectcase when substr(banner, instr(banner, 'Release ')+8,2) >= '12' then '' else '--' end snapper_ora12higher,case when substr(banner, instr(banner, 'Release ')+8,2) < '12' then '' else '--' end snapper_ora12lower,case when substr(banner, instr(banner, 'Release ')+8,2) = '11' then '' else '--' end snapper_ora11higher,case when substr(banner, instr(banner, 'Release ')+8,2) < '11' then '' else '--' end snapper_ora11lower,nvl(:v, '/* dbms_system is not accessible') dbms_system_accessible,nvl(:x, '--') x_accessible,case when substr( banner, instr(banner, 'Release ')+8, instr(substr(banner,instr(banner,'Release ')+8),' ') ) >= '10.2' then '' else '--' end yes_blk_inst,case when substr( banner, instr(banner, 'Release ')+8, instr(substr(banner,instr(banner,'Release ')+8),' ') ) >= '10.2' then '--' else '' end no_blk_inst,case when substr( banner, instr(banner, 'Release ')+8, instr(substr(banner,instr(banner,'Release ')+8),' ') ) >= '10.2.0.3' then '' else '--' end yes_plsql_obj_id,case when substr( banner, instr(banner, 'Release ')+8, instr(substr(banner,instr(banner,'Release ')+8),' ') ) >= '10.2.0.3' then '--' else '' end no_plsql_obj_id,case when lower('&snapper_options') like '%,begin%' or lower('&snapper_options') like 'begin%' or lower('&snapper_options') like '%,end%' or lower('&snapper_options') like 'end%' then '' else '--' end manual_snapshot,case when lower('&snapper_options') like '%,begin%' or lower('&snapper_options') like 'begin%' or lower('&snapper_options') like '%,end%' or lower('&snapper_options') like 'end%' then '--' else '' end use_dbms_lock,:sid_filter sid_filter,:inst_filter inst_filter frommod_banner /-- current workaround: 1st serveroutput command below is for sql developer compatibility -- 2nd is for sqlplus, so that newlines and leading spaces get properly printed set termout off set serveroutput on size 1000000 set serveroutput on size 1000000 format wrapped set termout onprompt Sampling SID &4 with interval &snapper_sleep seconds, taking &snapper_count snapshots...-- let the Snapping start!!! -- main() declare-- Snapper start-- forward declarationsprocedure output(p_txt in varchar2);procedure fout;function tptformat( p_num in number,p_stype in varchar2 default 'STAT',p_precision in number default 2,p_base in number default 10,p_grouplen in number default 3)return varchar2;function getopt( p_parvalues in varchar2,p_extract in varchar2,p_delim in varchar2 default ',')return varchar2;-- type, constant, variable declarations-- trick for holding 32bit UNSIGNED event and stat_ids in 32bit SIGNED PLS_INTEGERpls_adjust constant number(10,0) := power(2,31) - 1;type srec is record (ts timestamp, stype varchar2(4), inst_id number, sid number, statistic# number, value number, event_count number );type stab is table of srec index by pls_integer;type ltab is table of srec index by varchar2(100); -- lookup tab for various average calculations1 stab;s2 stab;l1 ltab;l2 ltab;type snrec is record (stype varchar2(4), statistic# number, name varchar2(100));type sntab is table of snrec index by pls_integer;sn_tmp sntab;sn sntab;type sntab_reverse is table of snrec index by varchar2(100); -- used for looking up stat id from stat namesn_reverse sntab_reverse;tmp_varchar2 varchar2(1000); -- miscfunction get_useful_average(c in srec /* curr_metric */, p in srec /* all_prev_metrics */) return varchar2;type tmp_sestab is table of gv$session%rowtype index by pls_integer;type sestab is table of gv$session%rowtype index by varchar2(20);g_sessions sestab;g_empty_sessions sestab;type hc_tab is table of number index by pls_integer; -- index is sql hash valuetype ses_hash_tab is table of hc_tab index by pls_integer; -- index is SIDg_ses_hash_tab ses_hash_tab;g_empty_ses_hash_tab ses_hash_tab;-- dbms_debug_vc2coll is a built-in collection present in every oracle dbg_ash sys.dbms_debug_vc2coll := new sys.dbms_debug_vc2coll();g_empty_ash sys.dbms_debug_vc2coll := new sys.dbms_debug_vc2coll();g_snap1 sys.dbms_debug_vc2coll; g_snap2 sys.dbms_debug_vc2coll; g_ash_samples_taken number := 0;g_count_statname number;g_count_eventname number;g_mysid number;i number;a number;b number;c number;delta number;evcnt number;changed_values number;pagesize number:=99999999999999;missing_values_s1 number := 0;missing_values_s2 number := 0;disappeared_sid number := 0;lv_curr_sid number := 0; -- used for determining whether to print an empty line between session statsd1 timestamp(6);d2 timestamp(6);ash_date1 date;ash_date2 date;lv_gather varchar2(1000);gv_header_string varchar2(1000);lv_data_string varchar2(1000);lv_ash varchar2(1000);lv_stats varchar2(1000);gather_stats number := 0;gather_ash number := 0;g_snap_begin varchar2(1000);g_snap_end varchar2(1000);-- CONFIGURABLE STUFF ---- this sets what are the default ash sample TOP reporting group by columnsg_ash_columns varchar2(1000) := 'inst_id + sql_id + sql_child_number + event + wait_class';g_ash_columns1 varchar2(1000) := 'inst_id + event + p1 + wait_class';g_ash_columns2 varchar2(1000) := 'inst_id + sid + user + machine + program';g_ash_columns3 varchar2(1000) := 'inst_id + plsql_object_id + plsql_subprogram_id + sql_id';g_ash_columns4 varchar2(1000) := 'con_id + inst_id + sql_id + sql_child_number + event + wait_class';g_ash_columns5 varchar2(1000) := 'con_id + inst_id + event + p1 + wait_class';g_ash_columns6 varchar2(1000) := 'con_id + inst_id + sid + user + machine + program';-- output column configurationoutput_header number := 0; -- 1=true 0=falseoutput_username number := 1; -- v$session.usernameoutput_inst number := 0; -- instoutput_sid number := CASE WHEN dbms_utility.is_cluster_database = TRUE THEN 0 ELSE 1 END; -- just sid output_inst_sid number := CASE WHEN dbms_utility.is_cluster_database = TRUE THEN 1 ELSE 0 END; -- inst_id and sid together output_time number := 0; -- time of snapshot startoutput_seconds number := 0; -- seconds in snapshot (shown in footer of each snapshot too)output_stype number := 1; -- statistic type (WAIT,STAT,TIME,ENQG,LATG,...)output_sname number := 1; -- statistic nameoutput_delta number := 1; -- raw deltaoutput_delta_s number := 0; -- raw delta normalized to per secondoutput_hdelta number := 0; -- human readable deltaoutput_hdelta_s number := 1; -- human readable delta normalized to per secondoutput_percent number := 1; -- percent of total time/samplesoutput_eventcnt number := 1; -- wait event countoutput_eventcnt_s number := 1; -- wait event countoutput_eventavg number := 1; -- average wait durationoutput_pcthist number := 1; -- percent of total visual bar (histogram) -- Histograms seem to work for me on 9.2.0.7 + - JBJ2)output_actses number := 1; -- show Average Active Sessions (AAS) in "ASH" activity sectionoutput_actses_pct number := 1; -- show AAS as a percentage of a single thread time-- column widths in ASH report outputw_inst_id number := 4;w_sid number := 6;w_username number := 20;w_machine number := 20;w_terminal number := 20;w_program number := 25;w_event number := 35;w_wait_class number := 15;w_state number := 8;w_p1 number := 20;w_p2 number := 20;w_p3 number := 20;w_row_wait_obj# number := 10;w_row_wait_file# number := 6;w_row_wait_block# number := 10;w_row_wait_row# number := 6;w_blocking_session_status number := 15;w_blocking_instance number := 12;w_blocking_session number := 12;w_sql_hash_value number := 12;w_sql_id number := 15;w_sql_child_number number := 9;w_plsql_entry_object_id number := 10;w_plsql_entry_subprogram_id number := 10;w_plsql_object_id number := 10;w_plsql_subprogram_id number := 10;w_module number := 25;w_action number := 25;w_client_identifier number := 25;w_service_name number := 25;w_con_id number := 6;w_actses number := 8;w_actses_pct number := 10;-- END CONFIGURABLE STUFF ---- constants for ash collection extraction from the vc2 collections_inst_id constant number := 1 ;s_sid constant number := 2 ;s_username constant number := 3 ;s_machine constant number := 4 ;s_terminal constant number := 5 ;s_program constant number := 6 ;s_event constant number := 7 ;s_wait_class constant number := 8 ;s_state constant number := 9 ;s_p1 constant number := 10 ;s_p2 constant number := 11 ;s_p3 constant number := 12 ;s_row_wait_obj# constant number := 13 ;s_row_wait_file# constant number := 14 ;s_row_wait_block# constant number := 15 ;s_row_wait_row# constant number := 16 ;s_blocking_session_status constant number := 17 ;s_blocking_instance constant number := 18 ;s_blocking_session constant number := 19 ;s_sql_hash_value constant number := 20 ;s_sql_id constant number := 21 ;s_sql_child_number constant number := 22 ;s_plsql_entry_object_id constant number := 23 ;s_plsql_entry_subprogram_id constant number := 24 ;s_plsql_object_id constant number := 25 ;s_plsql_subprogram_id constant number := 26 ;s_module constant number := 27 ;s_action constant number := 28 ;s_client_identifier constant number := 29 ;s_service_name constant number := 30 ;s_con_id constant number := 31 ;-- constants for ash collection reporting, which columns to show in reportc_inst_id constant number := power(2, s_inst_id );c_sid constant number := power(2, s_sid );c_username constant number := power(2, s_username );c_machine constant number := power(2, s_machine );c_terminal constant number := power(2, s_terminal );c_program constant number := power(2, s_program );c_event constant number := power(2, s_event );c_wait_class constant number := power(2, s_wait_class );c_state constant number := power(2, s_state );c_p1 constant number := power(2, s_p1 );c_p2 constant number := power(2, s_p2 );c_p3 constant number := power(2, s_p3 );c_row_wait_obj# constant number := power(2, s_row_wait_obj# );c_row_wait_file# constant number := power(2, s_row_wait_file# );c_row_wait_block# constant number := power(2, s_row_wait_block# );c_row_wait_row# constant number := power(2, s_row_wait_row# );c_blocking_session_status constant number := power(2, s_blocking_session_status );c_blocking_instance constant number := power(2, s_blocking_instance );c_blocking_session constant number := power(2, s_blocking_session );c_sql_hash_value constant number := power(2, s_sql_hash_value );c_sql_id constant number := power(2, s_sql_id );c_sql_child_number constant number := power(2, s_sql_child_number );c_plsql_entry_object_id constant number := power(2, s_plsql_entry_object_id );c_plsql_entry_subprogram_id constant number := power(2, s_plsql_entry_subprogram_id);c_plsql_object_id constant number := power(2, s_plsql_object_id );c_plsql_subprogram_id constant number := power(2, s_plsql_subprogram_id );c_module constant number := power(2, s_module );c_action constant number := power(2, s_action );c_client_identifier constant number := power(2, s_client_identifier );c_service_name constant number := power(2, s_service_name );c_con_id constant number := power(2, s_con_id );/*----------------------------------------------------- proc for outputting data to trace or dbms_output---------------------------------------------------*/procedure output(p_txt in varchar2) isbeginif (getopt('&snapper_options', 'out') is not null)or(getopt('&snapper_options', 'out') is null and getopt('&snapper_options', 'trace') is null)thendbms_output.put_line(p_txt);end if;-- The block below is a sqlplus trick for conditionally commenting out PL/SQL code&_IF_DBMS_SYSTEM_ACCESSIBLEif getopt('&snapper_options', 'trace') is not null thensys.dbms_system.ksdwrt(1, p_txt);sys.dbms_system.ksdfls;end if;-- */end; -- output/*----------------------------------------------------- function for converting interval datatype to microseconds---------------------------------------------------*/function get_seconds(i interval day to second) return numberass NUMBER;begins := to_number(extract(second from i)) +to_number(extract(minute from i)) * 60 + to_number(extract(hour from i)) * 60 * 60 + to_number(extract(day from i)) * 60 * 60 * 24;--output('get_seconds '||to_char(i)||' = '||to_char(s)); return s;end get_seconds;/*----------------------------------------------------- proc for outputting data, utilizing global vars---------------------------------------------------*/procedure fout isl_output_username VARCHAR2(100);gsid varchar2(20);begin--if s2(b).stype='WAIT' then output( 'DEBUG WAIT ' || sn(s2(b).statistic#).name || ' ' || delta ); end if;--output( 'DEBUG, Entering fout(), b='||to_char(b)||' sn(s2(b).statistic#='||s2(b).statistic# );--output( 'DEBUG, In fout(), a='||to_char(a)||' b='||to_char(b)||' s1.count='||s1.count||' s2.count='||s2.count||' s2.count='||s2.count);gsid := trim(to_char(s2(b).inst_id))||','||trim(to_char(s2(b).sid));if output_username = 1 thenbeginl_output_username := nvl( g_sessions(gsid).username, substr(g_sessions(gsid).program, instr(g_sessions(gsid).program,'(')) );exceptionwhen no_data_found then l_output_username := 'error';when others then raise;end;end if;-- DEBUG--output('before');--output (CASE WHEN output_eventavg = 1 THEN CASE WHEN s2(b).stype IN ('WAIT') THEN lpad(tptformat(delta / CASE WHEN evcnt = 0 THEN 1 ELSE evcnt END, s2(b).stype), 10, ' ')||' average wait' ELSE get_useful_average(s2(b), s1(a)) END END);--output('after');output( CASE WHEN output_header = 1 THEN 'SID= ' END|| CASE WHEN output_inst = 1 THEN to_char(s2(b).inst_id, '9999')||', ' END|| CASE WHEN output_sid = 1 THEN to_char(s2(b).sid,'999999')||', ' END|| CASE WHEN output_inst_sid = 1 THEN to_char(s2(b).sid,'99999')||' '||lpad('@'||trim(to_char(s2(b).inst_id, '99')),3)||', ' END|| CASE WHEN output_username = 1 THEN rpad(CASE s2(b).sid WHEN -1 THEN ' ' ELSE NVL(l_output_username, ' ') END, 10)||', ' END|| CASE WHEN output_time = 1 THEN to_char(d1, 'YYYYMMDD HH24:MI:SS')||', ' END|| CASE WHEN output_seconds = 1 THEN to_char(case get_seconds(d2-d1) when 0 then &snapper_sleep else get_seconds(d2-d1) end, '9999999')||', ' END|| CASE WHEN output_stype = 1 THEN s2(b).stype||', ' END|| CASE WHEN output_sname = 1 THEN rpad(sn(s2(b).statistic#).name, 58, ' ')||', ' END|| CASE WHEN output_delta = 1 THEN to_char(delta, '999999999999')||', ' END|| CASE WHEN output_delta_s = 1 THEN to_char(delta/(case get_seconds(d2-d1) when 0 then &snapper_sleep else get_seconds(d2-d1) end),'999999999')||', ' END|| CASE WHEN output_hdelta = 1 THEN lpad(tptformat(delta, s2(b).stype), 10, ' ')||', ' END|| CASE WHEN output_hdelta_s = 1 THEN lpad(tptformat(delta/(case get_seconds(d2-d1) when 0 then &snapper_sleep else get_seconds(d2-d1) end ), s2(b).stype), 10, ' ')||', ' END|| CASE WHEN output_percent = 1 THEN CASE WHEN s2(b).stype IN ('TIME','WAIT') THEN to_char(delta/CASE get_seconds(d2-d1) WHEN 0 THEN &snapper_sleep ELSE get_seconds(d2-d1) END / 10000, '9999.9')||'%' ELSE ' ' END END||', '|| CASE WHEN output_pcthist = 1 THEN CASE WHEN s2(b).stype IN ('TIME','WAIT') THEN rpad(rpad('[', ceil(round(delta/CASE get_seconds(d2-d1) WHEN 0 THEN &snapper_sleep ELSE get_seconds(d2-d1) END / 100000,1))+1, CASE WHEN s2(b).stype IN ('WAIT') THEN 'W' WHEN sn(s2(b).statistic#).name = 'DB CPU' THEN '@' ELSE '#' END),11,' ')||']' ELSE ' ' END END||', '|| CASE WHEN output_eventcnt = 1 THEN CASE WHEN s2(b).stype IN ('WAIT') THEN to_char(evcnt, '99999999') ELSE ' ' END END||', '|| CASE WHEN output_eventcnt_s = 1 THEN CASE WHEN s2(b).stype IN ('WAIT') THEN lpad(tptformat((evcnt / case get_seconds(d2-d1) when 0 then &snapper_sleep else get_seconds(d2-d1) end ), 'STAT' ), 10, ' ') ELSE ' ' END END||', '|| CASE WHEN output_eventavg = 1 THEN CASE WHEN s2(b).stype IN ('WAIT') THEN lpad(tptformat(delta / CASE WHEN evcnt = 0 THEN 1 ELSE evcnt END, s2(b).stype), 10, ' ')||' average wait' ELSE get_useful_average(s2(b), s1(a)) END END);end;/*----------------------------------------------------- lookup stat delta helper calculator (l2.value - l1.value)---------------------------------------------------*/function get_delta(metric_id in varchar2) return numberisrec1 srec;rec2 srec;val1 number;val2 number;d number;beginbegin val1 := l1(metric_id).value;exceptionwhen no_data_found then val1 := 0;end;beginval2 := l2(metric_id).value;exceptionwhen no_data_found then val2 := 0;end;d := val2 - NVL(val1, 0);return d;end get_delta;/*----------------------------------------------------- delta helper function for convenience - it allows to specify any metric delta, if not specified then get current one---------------------------------------------------*/function gd(c in srec, metric_type in varchar2 DEFAULT NULL, metric_name in varchar2 DEFAULT NULL) return numberisstr varchar2(1000);tmp_delta number;beginif metric_type || metric_name is null thenstr := c.stype||','||trim(to_char(c.inst_id))||','||trim(to_char(c.sid))||','||trim(to_char(c.statistic#,'999999999999999999999999'));else beginstr := trim(metric_type)||','||trim(to_char(c.inst_id))||','||trim(to_char(c.sid))||','||trim(to_char(sn_reverse(metric_type||','||metric_name).statistic#));exceptionwhen no_data_found then return 0;end;end if;tmp_delta := get_delta(str);--output('tmp_delta '||c.stype||' '||tmp_delta);return tmp_delta;-- return get_delta(str);end; /*----------------------------------------------------- function for calculating useful averages and ratios between metrics-- it is totally OK to show ratios together with raw values they have been derived from---------------------------------------------------*/function get_useful_average(c in srec /* curr_metric */, p in srec /* all_prev_metrics */) return varchar2isret varchar2(1000);mt varchar2(100) := c.stype; -- metric_typemn varchar2(100) := sn(c.statistic#).name; -- metric_namebegincase when mt = 'STAT' thencase when mn LIKE 'session _ga memory%' then ret := lpad( tptformat(gd(c), 'STAT'), 10) || ' actual value in end of snapshot';when mn LIKE '%ed%cursors current' then ret := lpad( tptformat(gd(c), 'STAT'), 10) || ' actual value in end of snapshot';when mn = 'file io service time' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'physical read total IO requests')+gd(c, 'STAT', 'physical write total IO requests'),0), 'TIME'), 10) || ' bad guess of IO service time per IO request';when mn = 'file io wait time' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'physical read total IO requests')+gd(c, 'STAT', 'physical write total IO requests'),0), 'TIME'), 10) || ' bad guess of IO wait time per IO request';when mn = 'redo synch time overhead (usec)' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'redo synch writes' ),0), 'TIME'), 10) || ' FG wakeup overhead per log file sync';when mn = 'redo write time' then ret := lpad( tptformat(gd(c) * 10000 / nullif(gd(c, 'STAT', 'redo writes' ),0), 'TIME'), 10) || ' per redo write';when mn = 'recursive calls' then ret := lpad( tptformat(gd(c, 'STAT', 'recursive cpu usage') * 10000 / nullif(gd(c), 0), 'TIME'), 10) || ' recursive CPU per recursive call';when mn = 'recursive cpu usage' then ret := lpad( tptformat(gd(c) * 10000, 'TIME'), 10) || ' total recursive CPU usage';when mn = 'parse time cpu' then ret := lpad( tptformat(gd(c) * 10000, 'TIME'), 10) || ' total parse time CPU';when mn = 'parse time elapsed' then ret := lpad( tptformat(gd(c) * 10000, 'TIME'), 10) || ' total parse time elapsed';when mn = 'CPU used when call started' then ret := lpad( tptformat(gd(c) * 10000, 'TIME'), 10) || ' total CPU used when call started';when mn = 'CPU used by this session' then ret := lpad( tptformat(gd(c) * 10000, 'TIME'), 10) || ' total CPU used by this session';when mn = 'DB Time' then ret := lpad( tptformat(gd(c) * 10000, 'TIME'), 10) || ' total DB Time';when mn = 'physical write IO requests' then ret := lpad( tptformat(gd(c, 'STAT', 'physical write bytes') / nullif(gd(c),0), mt), 10) || ' bytes per request' ;when mn = 'physical write total IO requests' then ret := lpad( tptformat(gd(c, 'STAT', 'physical write total bytes') / nullif(gd(c),0), mt), 10) || ' bytes per request' ;when mn = 'physical write total multi block requests' then ret:= lpad( tptformat(gd(c, 'STAT', 'physical write total IO requests') - gd(c), mt), 10) || ' total single block write requests' ;when mn = 'physical read total multi block requests' then ret := lpad( tptformat(gd(c, 'STAT', 'physical read total IO requests') - gd(c), mt), 10) || ' total single block read requests' ;when mn = 'physical read IO requests' then ret := lpad( tptformat(gd(c, 'STAT', 'physical read bytes' ) / nullif(gd(c),0), mt), 10) || ' bytes per request' ;when mn = 'physical read read IO requests' then ret := lpad( tptformat(gd(c, 'STAT', 'physical read total bytes' ) / nullif(gd(c),0), mt), 10) || ' bytes per request' ;when mn = 'bytes sent via SQL*Net to client' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'SQL*Net roundtrips to/from client'),0), mt), 10) || ' bytes per roundtrip' ;when mn = 'bytes received via SQL*Net from client' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'SQL*Net roundtrips to/from client'),0), mt), 10) || ' bytes per roundtrip' ;when mn = 'bytes sent via SQL*Net to dblink' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'SQL*Net roundtrips to/from dblink'),0), mt), 10) || ' bytes per roundtrip' ;when mn = 'bytes received via SQL*Net from dblink' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'SQL*Net roundtrips to/from dblink'),0), mt), 10) || ' bytes per roundtrip' ;when mn = 'redo size' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'user commits' ),0), mt), 10) || ' bytes per user commit';when mn = 'execute count' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'parse count (total)' ),0), mt), 10) || ' executions per parse';when mn = 'parse count (total)' then ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'parse count (hard)' ),0), mt), 10) || ' softparses per hardparse';when mn = 'session cursor cache hits' then ret := lpad( tptformat(gd(c) - (gd(c, 'STAT', 'parse count (total)' ) ), mt), 10) || ' softparses avoided thanks to cursor cache';when mn = 'session logical reads' then ret := lpad( tptformat(gd(c) + (gd(c, 'STAT', 'buffer is pinned count' ) ), mt), 10) || ' total buffer visits';when mn = 'buffer is pinned count' then ret := lpad( tptformat(gd(c) / nullif(gd(c) + gd(c, 'STAT', 'session logical reads'),0) * 100, mt), 10) || ' % buffer gets avoided thanks to buffer pin caching';else ret := lpad( tptformat(gd(c) / nullif(gd(c, 'STAT', 'execute count'),0), mt), 10) || ' per execution' ;end case; -- mt=stat, mnwhen mt = 'TIME' then-- this is ugly and wrong at the moment - will refactor some daycasewhen mn = 'DB time' or mn= 'background elapsed time' then ret := lpad(tptformat((get_seconds(d2 - d1)*1000000 - (gd(c) /*+ gd(c, 'DB CPU', 'TIME') */+ gd(c, 'WAIT', 'pmon timer')+ gd(c, 'WAIT', 'VKTM Logical Idle Wait')+ gd(c, 'WAIT', 'VKTM Init Wait for GSGA')+ gd(c, 'WAIT', 'IORM Scheduler Slave Idle Wait')+ gd(c, 'WAIT', 'rdbms ipc message')+ gd(c, 'WAIT', 'OFS idle')+ gd(c, 'WAIT', 'i/o slave wait')+ gd(c, 'WAIT', 'VKRM Idle')+ gd(c, 'WAIT', 'wait for unread message on broadcast channel')+ gd(c, 'WAIT', 'wait for unread message on multiple broadcast channels')+ gd(c, 'WAIT', 'class slave wait')+ gd(c, 'WAIT', 'PING')+ gd(c, 'WAIT', 'watchdog main loop')+ gd(c, 'WAIT', 'process in prespawned state')+ gd(c, 'WAIT', 'DIAG idle wait')+ gd(c, 'WAIT', 'ges remote message')+ gd(c, 'WAIT', 'gcs remote message')+ gd(c, 'WAIT', 'heartbeat monitor sleep')+ gd(c, 'WAIT', 'GCR sleep')+ gd(c, 'WAIT', 'SGA: MMAN sleep for component shrink')+ gd(c, 'WAIT', 'MRP redo arrival')+ gd(c, 'WAIT', 'LNS ASYNC archive log')+ gd(c, 'WAIT', 'LNS ASYNC dest activation')+ gd(c, 'WAIT', 'LNS ASYNC end of log')+ gd(c, 'WAIT', 'simulated log write delay')+ gd(c, 'WAIT', 'heartbeat redo informer')+ gd(c, 'WAIT', 'LGWR real time apply sync')+ gd(c, 'WAIT', 'LGWR worker group idle')+ gd(c, 'WAIT', 'parallel recovery slave idle wait')+ gd(c, 'WAIT', 'Backup Appliance waiting for work')+ gd(c, 'WAIT', 'Backup Appliance waiting restore start')+ gd(c, 'WAIT', 'Backup Appliance Surrogate wait')+ gd(c, 'WAIT', 'Backup Appliance Servlet wait')+ gd(c, 'WAIT', 'Backup Appliance Comm SGA setup wait')+ gd(c, 'WAIT', 'LogMiner builder: idle')+ gd(c, 'WAIT', 'LogMiner builder: branch')+ gd(c, 'WAIT', 'LogMiner preparer: idle')+ gd(c, 'WAIT', 'LogMiner reader: log (idle)')+ gd(c, 'WAIT', 'LogMiner reader: redo (idle)')+ gd(c, 'WAIT', 'LogMiner client: transaction')+ gd(c, 'WAIT', 'LogMiner: other')+ gd(c, 'WAIT', 'LogMiner: activate')+ gd(c, 'WAIT', 'LogMiner: reset')+ gd(c, 'WAIT', 'LogMiner: find session')+ gd(c, 'WAIT', 'LogMiner: internal')+ gd(c, 'WAIT', 'Logical Standby Apply Delay')+ gd(c, 'WAIT', 'parallel recovery coordinator waits for slave cleanup')+ gd(c, 'WAIT', 'parallel recovery coordinator idle wait')+ gd(c, 'WAIT', 'parallel recovery control message reply')+ gd(c, 'WAIT', 'parallel recovery slave next change')+ gd(c, 'WAIT', 'recovery sender idle wait')+ gd(c, 'WAIT', 'recovery receiver idle wait')+ gd(c, 'WAIT', 'recovery merger idle wait ')+ gd(c, 'WAIT', 'PX Deq: Txn Recovery Start')+ gd(c, 'WAIT', 'PX Deq: Txn Recovery Reply')+ gd(c, 'WAIT', 'fbar timer')+ gd(c, 'WAIT', 'smon timer')+ gd(c, 'WAIT', 'PX Deq: Metadata Update')+ gd(c, 'WAIT', 'Space Manager: slave idle wait')+ gd(c, 'WAIT', 'PX Deq: Index Merge Reply')+ gd(c, 'WAIT', 'PX Deq: Index Merge Execute')+ gd(c, 'WAIT', 'PX Deq: Index Merge Close')+ gd(c, 'WAIT', 'PX Deq: kdcph_mai')+ gd(c, 'WAIT', 'PX Deq: kdcphc_ack')+ gd(c, 'WAIT', 'imco timer')+ gd(c, 'WAIT', 'virtual circuit next request')+ gd(c, 'WAIT', 'shared server idle wait')+ gd(c, 'WAIT', 'dispatcher timer')+ gd(c, 'WAIT', 'cmon timer')+ gd(c, 'WAIT', 'pool server timer')+ gd(c, 'WAIT', 'lreg timer')+ gd(c, 'WAIT', 'JOX Jit Process Sleep')+ gd(c, 'WAIT', 'jobq slave wait')+ gd(c, 'WAIT', 'pipe get')+ gd(c, 'WAIT', 'PX Deque wait')+ gd(c, 'WAIT', 'PX Idle Wait')+ gd(c, 'WAIT', 'PX Deq: Join ACK')+ gd(c, 'WAIT', 'PX Deq Credit: need buffer')+ gd(c, 'WAIT', 'PX Deq Credit: send blkd')+ gd(c, 'WAIT', 'PX Deq: Msg Fragment')+ gd(c, 'WAIT', 'PX Deq: Parse Reply')+ gd(c, 'WAIT', 'PX Deq: Execute Reply')+ gd(c, 'WAIT', 'PX Deq: Execution Msg')+ gd(c, 'WAIT', 'PX Deq: Table Q Normal')+ gd(c, 'WAIT', 'PX Deq: Table Q Sample')+ gd(c, 'WAIT', 'REPL Apply: txns')+ gd(c, 'WAIT', 'REPL Capture/Apply: messages')+ gd(c, 'WAIT', 'REPL Capture: archive log')+ gd(c, 'WAIT', 'single-task message')+ gd(c, 'WAIT', 'SQL*Net message from client')+ gd(c, 'WAIT', 'SQL*Net vector message from client')+ gd(c, 'WAIT', 'SQL*Net vector message from dblink')+ gd(c, 'WAIT', 'PL/SQL lock timer')+ gd(c, 'WAIT', 'Streams AQ: emn coordinator idle wait')+ gd(c, 'WAIT', 'EMON slave idle wait')+ gd(c, 'WAIT', 'Emon coordinator main loop')+ gd(c, 'WAIT', 'Emon slave main loop')+ gd(c, 'WAIT', 'Streams AQ: waiting for messages in the queue')+ gd(c, 'WAIT', 'Streams AQ: waiting for time management or cleanup tasks')+ gd(c, 'WAIT', 'Streams AQ: delete acknowledged messages')+ gd(c, 'WAIT', 'Streams AQ: deallocate messages from Streams Pool')+ gd(c, 'WAIT', 'Streams AQ: qmn coordinator idle wait')+ gd(c, 'WAIT', 'Streams AQ: qmn slave idle wait')+ gd(c, 'WAIT', 'AQ: 12c message cache init wait')+ gd(c, 'WAIT', 'AQ Cross Master idle')+ gd(c, 'WAIT', 'AQPC idle')+ gd(c, 'WAIT', 'Streams AQ: load balancer idle')+ gd(c, 'WAIT', 'Sharded Queues : Part Maintenance idle')+ gd(c, 'WAIT', 'REPL Capture/Apply: RAC AQ qmn coordinator')+ gd(c, 'WAIT', 'HS message to agent')+ gd(c, 'WAIT', 'ASM background timer')+ gd(c, 'WAIT', 'iowp msg')+ gd(c, 'WAIT', 'iowp file id')+ gd(c, 'WAIT', 'netp network')+ gd(c, 'WAIT', 'gopp msg')+ gd(c, 'WAIT', 'auto-sqltune: wait graph update')+ gd(c, 'WAIT', 'WCR: replay client notify')+ gd(c, 'WAIT', 'WCR: replay clock')+ gd(c, 'WAIT', 'WCR: replay paused')+ gd(c, 'WAIT', 'JS external job')+ gd(c, 'WAIT', 'cell worker idle'))) / (get_seconds(d2 - d1)*1000000) * 100, 'STAT'), 10) || ' % unaccounted time' ;else null;end case; -- mt=time, mnelse null;end case; -- mtreturn ret;end get_useful_average;/*----------------------------------------------------- function for converting large numbers to human-readable format---------------------------------------------------*/function tptformat( p_num in number,p_stype in varchar2 default 'STAT',p_precision in number default 2,p_base in number default 10, -- for KiB/MiB formatting usep_grouplen in number default 3 -- p_base=2 and p_grouplen=10)return varchar2isbeginif p_num = 0 then return '0'; end if;if p_num IS NULL then return '~'; end if;if p_stype in ('WAIT','TIME') thenreturnround(p_num / power( p_base , trunc(log(p_base,abs(p_num)))-trunc(mod(log(p_base,abs(p_num)),p_grouplen)) ), p_precision)|| case trunc(log(p_base,abs(p_num)))-trunc(mod(log(p_base,abs(p_num)),p_grouplen))when 0 then 'us'when 1 then 'us'when p_grouplen*1 then 'ms'when p_grouplen*2 then 's'when p_grouplen*3 then 'ks'when p_grouplen*4 then 'Ms'else '*'||p_base||'^'||to_char( trunc(log(p_base,abs(p_num)))-trunc(mod(log(p_base,abs(p_num)),p_grouplen)) )||' us'end;elsereturnround(p_num / power( p_base , trunc(log(p_base,abs(p_num)))-trunc(mod(log(p_base,abs(p_num)),p_grouplen)) ), p_precision)|| case trunc(log(p_base,abs(p_num)))-trunc(mod(log(p_base,abs(p_num)),p_grouplen))when 0 then ''when 1 then ''when p_grouplen*1 then 'k'when p_grouplen*2 then 'M'when p_grouplen*3 then 'G'when p_grouplen*4 then 'T'when p_grouplen*5 then 'P'when p_grouplen*6 then 'E'else '*'||p_base||'^'||to_char( trunc(log(p_base,abs(p_num)))-trunc(mod(log(p_base,abs(p_num)),p_grouplen)) )end;end if;end; -- tptformat/*----------------------------------------------------- simple function for parsing arguments from parameter string---------------------------------------------------*/function getopt( p_parvalues in varchar2,p_extract in varchar2,p_delim in varchar2 default ',') return varchar2isret varchar(1000) := NULL;begin-- dbms_output.put('p_parvalues = ['||p_parvalues||'] ' );-- dbms_output.put('p_extract = ['||p_extract||'] ' );if lower(p_parvalues) like lower(p_extract)||'%'or lower(p_parvalues) like '%'||p_delim||lower(p_extract)||'%' thenret :=nvl (substr(p_parvalues,instr(p_parvalues, p_extract)+length(p_extract),caseinstr(substr(p_parvalues,instr(p_parvalues, p_extract)+length(p_extract)), p_delim)when 0 then length(p_parvalues)elseinstr(substr(p_parvalues,instr(p_parvalues, p_extract)+length(p_extract)), p_delim) - 1end), chr(0) -- in case parameter was specified but with no value);elseret := null; -- no parameter foundend if;-- dbms_output.put_line('ret = ['||replace(ret,chr(0),'\0')||']');return ret;end; -- getopt/*----------------------------------------------------- proc for getting session list with username, osuser, machine etc---------------------------------------------------*/procedure get_sessions istmp_sessions tmp_sestab;beginselect /*+ unnest */ /* get_session_list:1 */*bulk collect intotmp_sessionsfromgv$session swhere1=1and (&sid_filter) ;g_sessions := g_empty_sessions;for i in 1..tmp_sessions.count loopg_sessions(tmp_sessions(i).inst_id||','||tmp_sessions(i).sid) := tmp_sessions(i);end loop;end; -- get_sessions/*----------------------------------------------------- function for getting session list with username, osuser, machine etc-- this func does not update the g_sessions global array but returns session info as return value---------------------------------------------------*/function get_sessions return sestab istmp_sessions tmp_sestab;l_return_sessions sestab; beginselect /*+ unnest */ /* get_session_list:2 */*bulk collect intotmp_sessionsfromgv$session swhere1=1and (&sid_filter) ;for i in 1..tmp_sessions.count loop--output('get_sessions i='||i||' sid='||tmp_sessions(i).sid);l_return_sessions(tmp_sessions(i).inst_id||','||tmp_sessions(i).sid) := tmp_sessions(i);end loop;return l_return_sessions;end; -- get_sessions/*----------------------------------------------------- functions for extracting and converting gv$session-- records to varchar2---------------------------------------------------*/function sitem(p in varchar2) return varchar2 asbeginreturn '<'||translate(p, '<>', '__')||'>';end; -- sitem varchar2function sitem(p in number) return varchar2 asbeginreturn '<'||to_char(p)||'>';end; -- sitem number function sitem(p in date) return varchar2 asbeginreturn '<'||to_char(p, 'YYYY-MM-DD HH24:MI:SS')||'>';end; -- sitem datefunction sitem_raw(p in raw) return varchar2 asbeginreturn '<'||upper(rawtohex(p))||'>';end; -- sitem_raw/*----------------------------------------------------- proc for resetting the snapper ash array---------------------------------------------------*/procedure reset_ash isbeging_ash_samples_taken := 0;-- clear g_ashg_ash := new sys.dbms_debug_vc2coll(); end; -- reset_ash/*----------------------------------------------------- proc for getting ash style samples from gv$session ---------------------------------------------------*/procedure extract_ash isash_i varchar2(30);s gv$session%rowtype;begin-- keep track how many times we sampled gv$session so we could calculate averages later ong_ash_samples_taken := g_ash_samples_taken + 1;--output('g_sessions.count='||g_sessions.count);ash_i := g_sessions.first;while ash_i is not null loop s := g_sessions(ash_i);if -- active, on cpu(s.status = 'ACTIVE' and s.state != 'WAITING' and s.sid != g_mysid) or -- active, waiting for non-idle wait(s.status = 'ACTIVE' and s.state = 'WAITING' and s.wait_class != 'Idle' and s.sid != g_mysid) then --output('extract_ash: i='||i||' sid='||s.sid||' hv='||s.sql_hash_value||' sqlid='||s.sql_id);-- if not actually waiting for anything, clear the past wait event detailsif s.state != 'WAITING' then s.state:='ON CPU';s.event:='ON CPU';s.wait_class:='ON CPU'; --TODO: What do we need to do for 9i here?s.p1:=NULL;s.p2:=NULL;s.p3:=NULL;end if;g_ash.extend;-- max length 1000 bytes (due to dbms_debug_vc2coll)g_ash(g_ash.count) := substr(sitem(s.inst_id) -- 1||sitem(s.sid) -- 2||sitem(s.username) -- 3 -- 30 bytes||sitem(s.machine) -- 4 -- 64 bytes||sitem(s.terminal) -- 5 -- 30 bytes||sitem(s.program) -- 6 -- 48 bytes||sitem(s.event) -- 7 -- 64 bytes||sitem(s.wait_class) -- 8 -- 64 bytes, 10g+||sitem(s.state) -- 9 ||sitem(s.p1) -- 10||sitem(s.p2) -- 11||sitem(s.p3) -- 12||sitem(s.row_wait_obj#) -- 13||sitem(s.row_wait_file#) -- 14||sitem(s.row_wait_block#) -- 15||sitem(s.row_wait_row#) -- 16||sitem(s.blocking_session_status) -- 17 -- 10g+&_NO_BLK_INST ||sitem('N/A') -- 17 -- 10gR2+&_YES_BLK_INST ||sitem(s.blocking_instance) -- 18 -- 10gR2+||sitem(s.blocking_session) -- 19 -- 10g+||sitem(s.sql_hash_value) -- 20||sitem(s.sql_id) -- 21 -- 10g+||sitem(s.sql_child_number) -- 22 -- 10g+&_NO_PLSQL_OBJ_ID ||sitem('N/A') -- 23&_NO_PLSQL_OBJ_ID ||sitem('N/A') -- 24&_NO_PLSQL_OBJ_ID ||sitem('N/A') -- 25&_NO_PLSQL_OBJ_ID ||sitem('N/A') -- 26&_YES_PLSQL_OBJ_ID ||sitem(s.plsql_entry_object_id) -- 23&_YES_PLSQL_OBJ_ID ||sitem(s.plsql_entry_subprogram_id) -- 24&_YES_PLSQL_OBJ_ID ||sitem(s.plsql_object_id) -- 25&_YES_PLSQL_OBJ_ID ||sitem(s.plsql_subprogram_id) -- 26||sitem(s.module) -- 27 -- 48 bytes||sitem(s.action) -- 28 -- 32 bytes||sitem(s.client_identifier) -- 29 -- 64 bytes||sitem(s.service_name) -- 30 -- 64 bytes, 10g+&_IF_ORA12_OR_HIGHER ||sitem(s.con_id) -- 31 -- 12c+ &_IF_LOWER_THAN_ORA12 ||sitem('N/A') -- 31 , 1, 1000);end if; -- sample is of an active sessionash_i := g_sessions.next(ash_i);end loop;exceptionwhen no_data_found then output('error in extract_ash(): no_data_found for item '||i);end; -- extract_ash/*----------------------------------------------------- proc for querying performance data into collections---------------------------------------------------*/procedure snap( p_snapdate out timestamp, p_stats out stab, l_stats out ltab, p_stats_string out sys.dbms_debug_vc2coll) islv_include_stat varchar2(1000) := nvl( lower(getopt('&snapper_options', 'sinclude=' )), '%');lv_include_latch varchar2(1000) := nvl( lower(getopt('&snapper_options', 'linclude=' )), '%');lv_include_time varchar2(1000) := nvl( lower(getopt('&snapper_options', 'tinclude=' )), '%');lv_include_wait varchar2(1000) := nvl( lower(getopt('&snapper_options', 'winclude=' )), '%');lstr varchar2(1000);beginp_snapdate := systimestamp;select /* get_session_stats */ p_snapdate ts, snapper_stats.*bulk collect into p_statsfrom (select 'STAT' stype, s.inst_id, s.sid, ss.statistic# - pls_adjust statistic#, ss.value, null event_countfrom gv$session s, gv$sesstat sswhere &sid_filter --(inst_id,sid) in (&snapper_sid)and s.inst_id = ss.inst_idand s.sid = ss.sidand (lv_gather like '%s%' or lv_gather like '%a%')and ss.statistic# in (select /*+ no_unnest */ statistic# from v$statnamewhere lower(name) like '%'||lv_include_stat||'%'or regexp_like (name, lv_include_stat, 'i'))--union allselect'WAIT', s.inst_id, s.sid,en.event# + (select count(*) from v$statname) + 1 - pls_adjust,nvl(se.time_waited_micro,0) + ( decode(se.event||s.state, s.event||'WAITING', CASE WHEN s.seconds_in_wait > 1300000000 THEN 0 ELSE s.seconds_in_wait END -- bug in v$session, 0) * 1000000 ) value, total_waits event_countfrom gv$session s, gv$session_event se, v$event_name enwhere &sid_filterand s.sid = se.sidand s.inst_id = se.inst_idand se.event = en.name--and (se.inst_id, se.sid) in (&snapper_sid)and (lv_gather like '%w%' or lv_gather like '%a%')and en.event# in (select event# from v$event_namewhere lower(name) like '%'||lv_include_wait||'%'or regexp_like (name, lv_include_wait, 'i'))--union allselect 'TIME' stype, s.inst_id, s.sid, st.stat_id - pls_adjust statistic#, st.value, null event_countfrom gv$session s, gv$sess_time_model stwhere &sid_filter --(inst_id,sid) in (&snapper_sid)and s.inst_id = st.inst_idand s.sid = st.sidand (lv_gather like '%t%' or lv_gather like '%a%')and st.stat_id in (select stat_id from gv$sys_time_modelwhere lower(stat_name) like '%'||lv_include_time||'%'or regexp_like (stat_name, lv_include_time, 'i'))--union allselect 'LATG', s.inst_id, -1 sid,s.latch# +(select count(*) from v$statname) +(select count(*) from v$event_name) +1 - pls_adjust statistic#,s.gets + s.immediate_gets value, null event_countfrom gv$latch swhere &inst_filterand (lv_gather like '%l%' or lv_gather like '%a%')and latch# in (select latch# from v$latchnamewhere lower(name) like '%'||lv_include_latch||'%'or regexp_like (name, lv_include_latch, 'i'))--&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 union all&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 select 'BUFG', to_number(sys_context('userenv', 'instance')), -1 sid,&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 s.indx +&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 (select count(*) from v$statname) +&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 (select count(*) from v$event_name) +&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 (select count(*) from gv$latch) +&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 1 - pls_adjust statistic#,&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 s.why0+s.why1+s.why2 value, null event_count&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 from x$kcbsw s, x$kcbwh w&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 where&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 s.indx = w.indx &_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 and s.why0+s.why1+s.why2 > 0&_IF_X_ACCESSIBLE &_IF_LOWER_THAN_ORA11 and (lv_gather like '%b%' or lv_gather like '%a%')--&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER union all&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER select 'BUFG', to_number(sys_context('userenv', 'instance')), -1 sid,&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER sw.indx +&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER (select count(*) from v$statname) +&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER (select count(*) from v$event_name) +&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER (select count(*) from gv$latch) +&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER 1 - pls_adjust statistic#,&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER why.why0+why.why1+why.why2+sw.other_wait value, null event_count&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER from&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER x$kcbuwhy why,&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER x$kcbwh dsc,&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER x$kcbsw sw&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER where&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER why.indx = dsc.indx&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and why.inst_id = dsc.inst_id&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and dsc.inst_id = sw.inst_id&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and why.inst_id = sw.inst_id&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and why.why0 + why.why1 + why.why2 + sw.other_wait > 0&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and dsc.indx = sw.indx&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and why.indx = sw.indx&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER -- deliberate cartesian join&_IF_X_ACCESSIBLE &_IF_ORA11_OR_HIGHER and (lv_gather like '%b%' or lv_gather like '%a%')--union allselect 'ENQG', s.inst_id, -1 sid,ascii(substr(s.eq_type,1,1))*256 + ascii(substr(s.eq_type,2,1)) +(select count(*) from v$statname) +(select count(*) from v$event_name) +(select count(*) from gv$latch) +&_IF_X_ACCESSIBLE (select count(*) from x$kcbwh) +1 - pls_adjust statistic#,s.total_req# value, null event_countfrom gv$enqueue_stat swhere &inst_filterand (lv_gather like '%e%' or lv_gather like '%a%')) snapper_statsorder by inst_id, sid, stype, statistic#;if p_stats.COUNT > 0 then -- l_stats is an associative array for stats lookup, used for the useful averages calculation-- p_stats_string is a dbms_debug_vc2coll collection datatype for "persisting" stats values across snapper DB calls (for "before" and "after" snaps)p_stats_string := sys.dbms_debug_vc2coll();for s in p_stats.first..p_stats.last loop-- type srec is record (stype varchar2(4), sid number, statistic# number, value number, event_count number );lstr := p_stats(s).stype||','||trim(to_char(p_stats(s).inst_id))||','||trim(to_char(p_stats(s).sid))||','||trim(to_char(p_stats(s).statistic#,'999999999999999999999999'));l_stats(lstr) := p_stats(s);if g_snap_begin is not null thenp_stats_string.extend();p_stats_string(s) := TO_CHAR(p_stats(s).ts, 'YYYY-MM-DD HH24:MI:SS.FF') ||','||p_stats(s).stype ||','||TO_CHAR(p_stats(s).inst_id) ||','||TO_CHAR(p_stats(s).sid) ||','||TRIM(TO_CHAR(p_stats(s).statistic#, '999999999999999999999999'))||','||TRIM(TO_CHAR(p_stats(s).value, '999999999999999999999999'))||','||TRIM(TO_CHAR(p_stats(s).event_count,'999999999999999999999999'));--output('p_stats.p_stats_string='||p_stats_string(s));end if;end loop; -- s in (p_stats)end if; -- p.stats.COUNT > 0end snap;/*----------------------------------------------------- proc for reversing the string-normalized-- stats array into lookup tables/collections---------------------------------------------------*/procedure snap_from_stats_string (p_string_stats in sys.dbms_debug_vc2coll, p_snapdate out timestamp, p_stats out stab, l_stats out ltab)islstr varchar2(1000);lv_rec srec;beginp_snapdate := NULL;--type srec is record (stype varchar2(4), sid number, statistic# number, value number, event_count number );for s in p_string_stats.first .. p_string_stats.last looplv_rec.ts := TO_TIMESTAMP(replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 1),',',''), 'YYYY-MM-DD HH24:MI:SS.FF');lv_rec.stype := replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 2),',','');lv_rec.inst_id := TO_NUMBER(replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 3),',',''));lv_rec.sid := TO_NUMBER(replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 4),',',''));lv_rec.statistic# := TO_NUMBER(replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 5),',',''));lv_rec.value := TO_NUMBER(replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 6),',',''));lv_rec.event_count := TO_NUMBER(replace(regexp_substr(p_string_stats(s)||',', '(.*?),', 1, 7),',',''));--output('snap_from_stats_string.event_count = '||to_char(lv_rec.event_count));p_stats(s) := lv_rec;lstr := p_stats(s).stype||','||trim(to_char(p_stats(s).inst_id))||','||trim(to_char(p_stats(s).sid))||','||trim(to_char(p_stats(s).statistic#,'999999999999999999999999'));l_stats(lstr) := p_stats(s);end loop;p_snapdate := lv_rec.ts;end snap_from_stats_string;/*----------------------------------------------------- proc for dumping ASH data out in grouped-- and ordered fashion---------------------------------------------------*/procedure out_ash( p_ash_columns in varchar2, p_topn in number := 10 ) as-- whether to print given column or notp_inst_id number := 0;p_sid number := 0;p_username number := 0;p_machine number := 0;p_terminal number := 0;p_program number := 0;p_event number := 0;p_wait_class number := 0;p_state number := 0;p_p1 number := 0;p_p2 number := 0;p_p3 number := 0;p_row_wait_obj# number := 0;p_row_wait_file# number := 0;p_row_wait_block# number := 0;p_row_wait_row# number := 0;p_blocking_session_status number := 0;p_blocking_instance number := 0;p_blocking_session number := 0;p_sql_hash_value number := 0;p_sql_id number := 0;p_sql_child_number number := 0;p_plsql_entry_object_id number := 0;p_plsql_entry_subprogram_id number := 0;p_plsql_object_id number := 0;p_plsql_subprogram_id number := 0;p_module number := 0;p_action number := 0;p_client_identifier number := 0;p_service_name number := 0;p_con_id number := 0;-- temporary variables for holding session details (for later formatting)o_inst_id varchar2(100);o_sid varchar2(100);o_username varchar2(100);o_machine varchar2(100);o_terminal varchar2(100);o_program varchar2(100);o_event varchar2(100);o_wait_class varchar2(100);o_state varchar2(100);o_p1 varchar2(100);o_p2 varchar2(100);o_p3 varchar2(100);o_row_wait_obj# varchar2(100);o_row_wait_file# varchar2(100);o_row_wait_block# varchar2(100);o_row_wait_row# varchar2(100);o_blocking_session_status varchar2(100);o_blocking_instance varchar2(100);o_blocking_session varchar2(100);o_sql_hash_value varchar2(100);o_sql_id varchar2(100);o_sql_child_number varchar2(100);o_plsql_entry_object_id varchar2(100);o_plsql_entry_subprogram_id varchar2(100);o_plsql_object_id varchar2(100);o_plsql_subprogram_id varchar2(100);o_module varchar2(100);o_action varchar2(100);o_client_identifier varchar2(100);o_service_name varchar2(100);o_con_id varchar2(100);-- helper local varsl_ash_grouping number := 0;l_output_line varchar2(4000);l_ash_header_line varchar2(4000);begin-- bail out if no ASH samples recordedif g_ash.count = 0 then output(' <No active sessions captured during the sampling period>');return;end if;l_ash_header_line := '';if output_actses = 1 then l_ash_header_line := l_ash_header_line || ' ActSes'; end if;if output_actses_pct = 1 then l_ash_header_line := l_ash_header_line || ' %Thread'; end if;-- ash,ash1,ash2,ash3,ash4,ash5,ash6 parameter column group tokenizerfor s in (SELECT LEVEL, SUBSTR( TOKEN, DECODE(LEVEL, 1, 1, INSTR(TOKEN, DELIMITER, 1, LEVEL-1)+1), INSTR(TOKEN, DELIMITER, 1, LEVEL) -DECODE(LEVEL, 1, 1, INSTR(TOKEN, DELIMITER, 1, LEVEL-1)+1)) TOKENFROM ( SELECT REPLACE( LOWER(p_ash_columns) ,' ','')||'+' AS TOKEN, '+' AS DELIMITERFROM DUAL)CONNECT BY INSTR(TOKEN, DELIMITER, 1, LEVEL)>0ORDER BY LEVEL ASC) loop-- supported ASH column namescase s.token-- actual column names in gv$sessionwhen 'inst_id' then l_ash_grouping := l_ash_grouping + c_inst_id ; l_ash_header_line := l_ash_header_line || ' | ' || lpad('INST_ID' , w_inst_id , ' ');when 'con_id' then l_ash_grouping := l_ash_grouping + c_con_id ; l_ash_header_line := l_ash_header_line || ' | ' || lpad('CON_ID' , w_con_id , ' ');when 'sid' then l_ash_grouping := l_ash_grouping + c_sid ; l_ash_header_line := l_ash_header_line || ' | ' || lpad('SID' , w_sid , ' ');when 'username' then l_ash_grouping := l_ash_grouping + c_username ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('USERNAME' , w_username , ' ');when 'machine' then l_ash_grouping := l_ash_grouping + c_machine ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('MACHINE' , w_machine , ' ');when 'terminal' then l_ash_grouping := l_ash_grouping + c_terminal ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('TERMINAL' , w_terminal , ' ');when 'program' then l_ash_grouping := l_ash_grouping + c_program ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PROGRAM' , w_program , ' ');when 'event' then l_ash_grouping := l_ash_grouping + c_event ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('EVENT' , w_event , ' ');when 'wait_class' then l_ash_grouping := l_ash_grouping + c_wait_class ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('WAIT_CLASS' , w_wait_class , ' ');when 'state' then l_ash_grouping := l_ash_grouping + c_state ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('STATE' , w_state , ' ');when 'p1' then l_ash_grouping := l_ash_grouping + c_p1 ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('P1' , w_p1 , ' ');when 'p2' then l_ash_grouping := l_ash_grouping + c_p2 ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('P2' , w_p2 , ' ');when 'p3' then l_ash_grouping := l_ash_grouping + c_p3 ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('P3' , w_p3 , ' ');when 'row_wait_obj#' then l_ash_grouping := l_ash_grouping + c_row_wait_obj# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_OBJ#' , w_row_wait_obj# , ' ');when 'row_wait_file#' then l_ash_grouping := l_ash_grouping + c_row_wait_file# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_FILE#' , w_row_wait_file# , ' ');when 'row_wait_block#' then l_ash_grouping := l_ash_grouping + c_row_wait_block# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_BLOCK#' , w_row_wait_block# , ' ');when 'row_wait_row#' then l_ash_grouping := l_ash_grouping + c_row_wait_row# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_ROW#' , w_row_wait_row# , ' ');when 'blocking_session_status' then l_ash_grouping := l_ash_grouping + c_blocking_session_status ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('BLOCKING_SESSION_STATUS' , w_blocking_session_status , ' ');when 'blocking_instance' then l_ash_grouping := l_ash_grouping + c_blocking_instance ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('BLOCKING_INSTANCE' , w_blocking_instance , ' ');when 'blocking_session' then l_ash_grouping := l_ash_grouping + c_blocking_session ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('BLOCKING_SESSION' , w_blocking_session , ' ');when 'sql_hash_value' then l_ash_grouping := l_ash_grouping + c_sql_hash_value ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SQL_HASH_VALUE' , w_sql_hash_value , ' ');when 'sql_id' then l_ash_grouping := l_ash_grouping + c_sql_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SQL_ID' , w_sql_id , ' ');when 'sql_child_number' then l_ash_grouping := l_ash_grouping + c_sql_child_number ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SQL_CHILD_NUMBER' , w_sql_child_number , ' ');when 'plsql_entry_object_id' then l_ash_grouping := l_ash_grouping + c_plsql_entry_object_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_ENTRY_OBJECT_ID' , w_plsql_entry_object_id , ' ');when 'plsql_entry_subprogram_id' then l_ash_grouping := l_ash_grouping + c_plsql_entry_subprogram_id; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_ENTRY_SUBPROGRAM_ID' , w_plsql_entry_subprogram_id, ' ');when 'plsql_object_id' then l_ash_grouping := l_ash_grouping + c_plsql_object_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_OBJECT_ID' , w_plsql_object_id , ' ');when 'plsql_subprogram_id' then l_ash_grouping := l_ash_grouping + c_plsql_subprogram_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_SUBPROGRAM_ID' , w_plsql_subprogram_id , ' ');when 'module' then l_ash_grouping := l_ash_grouping + c_module ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('MODULE' , w_module , ' ');when 'action' then l_ash_grouping := l_ash_grouping + c_action ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ACTION' , w_action , ' ');when 'client_identifier' then l_ash_grouping := l_ash_grouping + c_client_identifier ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('CLIENT_IDENTIFIER' , w_client_identifier , ' ');when 'service_name' then l_ash_grouping := l_ash_grouping + c_service_name ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SERVICE_NAME' , w_service_name , ' ');-- aliases for convenience (only either real name or alias should be used together at the same time)when 'user' then l_ash_grouping := l_ash_grouping + c_username ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('USERNAME' , w_username , ' ');when 'obj' then l_ash_grouping := l_ash_grouping + c_row_wait_obj# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_OBJ#' , w_row_wait_obj# , ' ');when 'file' then l_ash_grouping := l_ash_grouping + c_row_wait_file# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_FILE#' , w_row_wait_file# , ' ');when 'block' then l_ash_grouping := l_ash_grouping + c_row_wait_block# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_BLOCK#' , w_row_wait_block# , ' ');when 'row' then l_ash_grouping := l_ash_grouping + c_row_wait_row# ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ROW_WAIT_ROW#' , w_row_wait_row# , ' ');when 'bss' then l_ash_grouping := l_ash_grouping + c_blocking_session_status ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('BLOCKING_SESSION_STATUS' , w_blocking_session_status , ' ');when 'bsi' then l_ash_grouping := l_ash_grouping + c_blocking_instance ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('BLOCKING_INSTANCE' , w_blocking_instance , ' ');when 'bs' then l_ash_grouping := l_ash_grouping + c_blocking_session ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('BLOCKING_SESSION' , w_blocking_session , ' ');when 'sql' then l_ash_grouping := l_ash_grouping + c_sql_hash_value ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SQL_HASH_VALUE' , w_sql_hash_value , ' ');when 'sqlid' then l_ash_grouping := l_ash_grouping + c_sql_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SQL_ID' , w_sql_id , ' ');when 'child' then l_ash_grouping := l_ash_grouping + c_sql_child_number ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SQL_CHILD_NUMBER' , w_sql_child_number , ' ');when 'plsql_eoid' then l_ash_grouping := l_ash_grouping + c_plsql_entry_object_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_ENTRY_OBJECT_ID' , w_plsql_entry_object_id , ' ');when 'plsql_esubpid' then l_ash_grouping := l_ash_grouping + c_plsql_entry_subprogram_id; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_ENTRY_SUBPROGRAM_ID' , w_plsql_entry_subprogram_id, ' ');when 'plsql_oid' then l_ash_grouping := l_ash_grouping + c_plsql_object_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_OBJECT_ID' , w_plsql_object_id , ' ');when 'plsql_subpid' then l_ash_grouping := l_ash_grouping + c_plsql_subprogram_id ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('PLSQL_SUBPROGRAM_ID' , w_plsql_subprogram_id , ' ');when 'mod' then l_ash_grouping := l_ash_grouping + c_module ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('MODULE' , w_module , ' ');when 'act' then l_ash_grouping := l_ash_grouping + c_action ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('ACTION' , w_action , ' ');when 'cid' then l_ash_grouping := l_ash_grouping + c_client_identifier ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('CLIENT_IDENTIFIER' , w_client_identifier , ' ');when 'service' then l_ash_grouping := l_ash_grouping + c_service_name ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('SERVICE_NAME' , w_service_name , ' ');when 'wait_event' then l_ash_grouping := l_ash_grouping + c_event ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('EVENT' , w_event , ' ');when 'wait_state' then l_ash_grouping := l_ash_grouping + c_state ; l_ash_header_line := l_ash_header_line || ' | ' || rpad('STATE' , w_state , ' ');elsenull;raise_application_error(-20001, 'Snapper: Invalid ASH column name, search for "ASH column name"'||chr(10)||'in snapper.sql script to see supported column names.'||chr(10)||sqlerrm);end case; -- case s.tokenend loop; -- tokenizeroutput(' ');output(lpad('-',length(l_ash_header_line),'-'));output(l_ash_header_line);output(lpad('-',length(l_ash_header_line),'-'));-- this is needed for "easy" sorting and group by ops (without any custom stored object types!)for i in (with /* get_aggregates_from_ash */ raw_records as (select column_value rec from table(cast(g_ash as sys.dbms_debug_vc2coll))),ash_records as (select substr(r.rec, instr(r.rec, '<', 1, 1)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 1)+1), '>')-1) inst_id, substr(r.rec, instr(r.rec, '<', 1, 2)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 2)+1), '>')-1) sid, substr(r.rec, instr(r.rec, '<', 1, 3)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 3)+1), '>')-1) username, substr(r.rec, instr(r.rec, '<', 1, 4)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 4)+1), '>')-1) machine, substr(r.rec, instr(r.rec, '<', 1, 5)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 5)+1), '>')-1) terminal, substr(r.rec, instr(r.rec, '<', 1, 6)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 6)+1), '>')-1) program, substr(r.rec, instr(r.rec, '<', 1, 7)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 7)+1), '>')-1) event, substr(r.rec, instr(r.rec, '<', 1, 8)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 8)+1), '>')-1) wait_class, substr(r.rec, instr(r.rec, '<', 1, 9)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 9)+1), '>')-1) state, substr(r.rec, instr(r.rec, '<', 1, 10)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 10)+1), '>')-1) p1, substr(r.rec, instr(r.rec, '<', 1, 11)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 11)+1), '>')-1) p2, substr(r.rec, instr(r.rec, '<', 1, 12)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 12)+1), '>')-1) p3, substr(r.rec, instr(r.rec, '<', 1, 13)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 13)+1), '>')-1) row_wait_obj#, substr(r.rec, instr(r.rec, '<', 1, 14)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 14)+1), '>')-1) row_wait_file#, substr(r.rec, instr(r.rec, '<', 1, 15)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 15)+1), '>')-1) row_wait_block#, substr(r.rec, instr(r.rec, '<', 1, 16)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 16)+1), '>')-1) row_wait_row#, substr(r.rec, instr(r.rec, '<', 1, 17)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 17)+1), '>')-1) blocking_session_status, substr(r.rec, instr(r.rec, '<', 1, 18)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 18)+1), '>')-1) blocking_instance, substr(r.rec, instr(r.rec, '<', 1, 19)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 19)+1), '>')-1) blocking_session, substr(r.rec, instr(r.rec, '<', 1, 20)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 20)+1), '>')-1) sql_hash_value, substr(r.rec, instr(r.rec, '<', 1, 21)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 21)+1), '>')-1) sql_id, substr(r.rec, instr(r.rec, '<', 1, 22)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 22)+1), '>')-1) sql_child_number, substr(r.rec, instr(r.rec, '<', 1, 23)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 23)+1), '>')-1) plsql_entry_object_id, substr(r.rec, instr(r.rec, '<', 1, 24)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 24)+1), '>')-1) plsql_entry_subprogram_id, substr(r.rec, instr(r.rec, '<', 1, 25)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 25)+1), '>')-1) plsql_object_id, substr(r.rec, instr(r.rec, '<', 1, 26)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 26)+1), '>')-1) plsql_subprogram_id, substr(r.rec, instr(r.rec, '<', 1, 27)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 27)+1), '>')-1) module, substr(r.rec, instr(r.rec, '<', 1, 28)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 28)+1), '>')-1) action, substr(r.rec, instr(r.rec, '<', 1, 29)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 29)+1), '>')-1) client_identifier, substr(r.rec, instr(r.rec, '<', 1, 30)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 30)+1), '>')-1) service_name , substr(r.rec, instr(r.rec, '<', 1, 31)+1, instr (substr(r.rec, instr(r.rec, '<', 1, 31)+1), '>')-1) con_id from raw_records r)select * from (selectdecode(bitand(l_ash_grouping, power(2, s_inst_id )), 0, chr(0), inst_id ) as inst_id, decode(bitand(l_ash_grouping, power(2, s_sid )), 0, chr(0), sid ) as sid , decode(bitand(l_ash_grouping, power(2, s_username )), 0, chr(0), username ) as username , decode(bitand(l_ash_grouping, power(2, s_machine )), 0, chr(0), machine ) as machine , decode(bitand(l_ash_grouping, power(2, s_terminal )), 0, chr(0), terminal ) as terminal , decode(bitand(l_ash_grouping, power(2, s_program )), 0, chr(0), program ) as program , decode(bitand(l_ash_grouping, power(2, s_event )), 0, chr(0), event ) as event , decode(bitand(l_ash_grouping, power(2, s_wait_class )), 0, chr(0), wait_class ) as wait_class , decode(bitand(l_ash_grouping, power(2, s_state )), 0, chr(0), state ) as state , decode(bitand(l_ash_grouping, power(2, s_p1 )), 0, chr(0), p1 ) as p1 , decode(bitand(l_ash_grouping, power(2, s_p2 )), 0, chr(0), p2 ) as p2 , decode(bitand(l_ash_grouping, power(2, s_p3 )), 0, chr(0), p3 ) as p3 , decode(bitand(l_ash_grouping, power(2, s_row_wait_obj# )), 0, chr(0), row_wait_obj# ) as row_wait_obj# , decode(bitand(l_ash_grouping, power(2, s_row_wait_file# )), 0, chr(0), row_wait_file# ) as row_wait_file# , decode(bitand(l_ash_grouping, power(2, s_row_wait_block# )), 0, chr(0), row_wait_block# ) as row_wait_block# , decode(bitand(l_ash_grouping, power(2, s_row_wait_row# )), 0, chr(0), row_wait_row# ) as row_wait_row# , decode(bitand(l_ash_grouping, power(2, s_blocking_session_status )), 0, chr(0), blocking_session_status ) as blocking_session_status , decode(bitand(l_ash_grouping, power(2, s_blocking_instance )), 0, chr(0), blocking_instance ) as blocking_instance , decode(bitand(l_ash_grouping, power(2, s_blocking_session )), 0, chr(0), blocking_session ) as blocking_session , decode(bitand(l_ash_grouping, power(2, s_sql_hash_value )), 0, chr(0), sql_hash_value ) as sql_hash_value , decode(bitand(l_ash_grouping, power(2, s_sql_id )), 0, chr(0), sql_id ) as sql_id , decode(bitand(l_ash_grouping, power(2, s_sql_child_number )), 0, chr(0), sql_child_number ) as sql_child_number , decode(bitand(l_ash_grouping, power(2, s_plsql_entry_object_id )), 0, chr(0), plsql_entry_object_id ) as plsql_entry_object_id , decode(bitand(l_ash_grouping, power(2, s_plsql_entry_subprogram_id )), 0, chr(0), plsql_entry_subprogram_id ) as plsql_entry_subprogram_id , decode(bitand(l_ash_grouping, power(2, s_plsql_object_id )), 0, chr(0), plsql_object_id ) as plsql_object_id , decode(bitand(l_ash_grouping, power(2, s_plsql_subprogram_id )), 0, chr(0), plsql_subprogram_id ) as plsql_subprogram_id , decode(bitand(l_ash_grouping, power(2, s_module )), 0, chr(0), module ) as module , decode(bitand(l_ash_grouping, power(2, s_action )), 0, chr(0), action ) as action , decode(bitand(l_ash_grouping, power(2, s_client_identifier )), 0, chr(0), client_identifier ) as client_identifier , decode(bitand(l_ash_grouping, power(2, s_service_name )), 0, chr(0), service_name ) as service_name , decode(bitand(l_ash_grouping, power(2, s_con_id )), 0, chr(0), con_id ) as con_id , count(*)/g_ash_samples_taken average_active_samplesfromash_records agroup bydecode(bitand(l_ash_grouping, power(2, s_inst_id )), 0, chr(0), inst_id ) -- inst_id , decode(bitand(l_ash_grouping, power(2, s_sid )), 0, chr(0), sid ) -- sid , decode(bitand(l_ash_grouping, power(2, s_username )), 0, chr(0), username ) -- username , decode(bitand(l_ash_grouping, power(2, s_machine )), 0, chr(0), machine ) -- machine , decode(bitand(l_ash_grouping, power(2, s_terminal )), 0, chr(0), terminal ) -- terminal , decode(bitand(l_ash_grouping, power(2, s_program )), 0, chr(0), program ) -- program , decode(bitand(l_ash_grouping, power(2, s_event )), 0, chr(0), event ) -- event , decode(bitand(l_ash_grouping, power(2, s_wait_class )), 0, chr(0), wait_class ) -- wait_class , decode(bitand(l_ash_grouping, power(2, s_state )), 0, chr(0), state ) -- state , decode(bitand(l_ash_grouping, power(2, s_p1 )), 0, chr(0), p1 ) -- p1 , decode(bitand(l_ash_grouping, power(2, s_p2 )), 0, chr(0), p2 ) -- p2 , decode(bitand(l_ash_grouping, power(2, s_p3 )), 0, chr(0), p3 ) -- p3 , decode(bitand(l_ash_grouping, power(2, s_row_wait_obj# )), 0, chr(0), row_wait_obj# ) -- row_wait_obj# , decode(bitand(l_ash_grouping, power(2, s_row_wait_file# )), 0, chr(0), row_wait_file# ) -- row_wait_file# , decode(bitand(l_ash_grouping, power(2, s_row_wait_block# )), 0, chr(0), row_wait_block# ) -- row_wait_block# , decode(bitand(l_ash_grouping, power(2, s_row_wait_row# )), 0, chr(0), row_wait_row# ) -- row_wait_row# , decode(bitand(l_ash_grouping, power(2, s_blocking_session_status )), 0, chr(0), blocking_session_status ) -- blocking_session_status , decode(bitand(l_ash_grouping, power(2, s_blocking_instance )), 0, chr(0), blocking_instance ) -- blocking_instance , decode(bitand(l_ash_grouping, power(2, s_blocking_session )), 0, chr(0), blocking_session ) -- blocking_session , decode(bitand(l_ash_grouping, power(2, s_sql_hash_value )), 0, chr(0), sql_hash_value ) -- sql_hash_value , decode(bitand(l_ash_grouping, power(2, s_sql_id )), 0, chr(0), sql_id ) -- sql_id , decode(bitand(l_ash_grouping, power(2, s_sql_child_number )), 0, chr(0), sql_child_number ) -- sql_child_number , decode(bitand(l_ash_grouping, power(2, s_plsql_entry_object_id )), 0, chr(0), plsql_entry_object_id ) -- plsql_entry_object_id , decode(bitand(l_ash_grouping, power(2, s_plsql_entry_subprogram_id )), 0, chr(0), plsql_entry_subprogram_id ) -- plsql_entry_subprogram_id , decode(bitand(l_ash_grouping, power(2, s_plsql_object_id )), 0, chr(0), plsql_object_id ) -- plsql_object_id , decode(bitand(l_ash_grouping, power(2, s_plsql_subprogram_id )), 0, chr(0), plsql_subprogram_id ) -- plsql_subprogram_id , decode(bitand(l_ash_grouping, power(2, s_module )), 0, chr(0), module ) -- module , decode(bitand(l_ash_grouping, power(2, s_action )), 0, chr(0), action ) -- action , decode(bitand(l_ash_grouping, power(2, s_client_identifier )), 0, chr(0), client_identifier ) -- client_identifier , decode(bitand(l_ash_grouping, power(2, s_service_name )), 0, chr(0), service_name ) -- service_name , decode(bitand(l_ash_grouping, power(2, s_con_id )), 0, chr(0), con_id ) -- con_id order bycount(*)/g_ash_samples_taken desc)where rownum <= p_topn) loopl_output_line := '';o_inst_id := CASE WHEN i.inst_id = chr(0) THEN null ELSE nvl(i.inst_id , ' ') END;o_sid := CASE WHEN i.sid = chr(0) THEN null ELSE nvl(i.sid , ' ') END;o_username := CASE WHEN i.username = chr(0) THEN null ELSE nvl(i.username , ' ') END;o_machine := CASE WHEN i.machine = chr(0) THEN null ELSE nvl(i.machine , ' ') END;o_terminal := CASE WHEN i.terminal = chr(0) THEN null ELSE nvl(i.terminal , ' ') END;o_program := CASE WHEN i.program = chr(0) THEN null ELSE nvl(i.program , ' ') END;o_event := CASE WHEN i.event = chr(0) THEN null ELSE nvl(i.event , ' ') END;o_wait_class := CASE WHEN i.wait_class = chr(0) THEN null ELSE nvl(i.wait_class , ' ') END;o_state := CASE WHEN i.state = chr(0) THEN null ELSE nvl(i.state , ' ') END;o_p1 := CASE WHEN i.p1 = chr(0) THEN null ELSE nvl(i.p1 , ' ') END;o_p2 := CASE WHEN i.p2 = chr(0) THEN null ELSE nvl(i.p2 , ' ') END;o_p3 := CASE WHEN i.p3 = chr(0) THEN null ELSE nvl(i.p3 , ' ') END;o_row_wait_obj# := CASE WHEN i.row_wait_obj# = chr(0) THEN null ELSE nvl(i.row_wait_obj# , ' ') END;o_row_wait_file# := CASE WHEN i.row_wait_file# = chr(0) THEN null ELSE nvl(i.row_wait_file# , ' ') END;o_row_wait_block# := CASE WHEN i.row_wait_block# = chr(0) THEN null ELSE nvl(i.row_wait_block# , ' ') END;o_row_wait_row# := CASE WHEN i.row_wait_row# = chr(0) THEN null ELSE nvl(i.row_wait_row# , ' ') END;o_blocking_session_status := CASE WHEN i.blocking_session_status = chr(0) THEN null ELSE nvl(i.blocking_session_status , ' ') END;o_blocking_instance := CASE WHEN i.blocking_instance = chr(0) THEN null ELSE nvl(i.blocking_instance , ' ') END;o_blocking_session := CASE WHEN i.blocking_session = chr(0) THEN null ELSE nvl(i.blocking_session , ' ') END;o_sql_hash_value := CASE WHEN i.sql_hash_value = chr(0) THEN null ELSE nvl(i.sql_hash_value , ' ') END;o_sql_id := CASE WHEN i.sql_id = chr(0) THEN null ELSE nvl(i.sql_id , ' ') END;o_sql_child_number := CASE WHEN i.sql_child_number = chr(0) THEN null ELSE nvl(i.sql_child_number , ' ') END;o_plsql_entry_object_id := CASE WHEN i.plsql_entry_object_id = chr(0) THEN null ELSE nvl(i.plsql_entry_object_id , ' ') END;o_plsql_entry_subprogram_id := CASE WHEN i.plsql_entry_subprogram_id = chr(0) THEN null ELSE nvl(i.plsql_entry_subprogram_id , ' ') END;o_plsql_object_id := CASE WHEN i.plsql_object_id = chr(0) THEN null ELSE nvl(i.plsql_object_id , ' ') END;o_plsql_subprogram_id := CASE WHEN i.plsql_subprogram_id = chr(0) THEN null ELSE nvl(i.plsql_subprogram_id , ' ') END;o_module := CASE WHEN i.module = chr(0) THEN null ELSE nvl(i.module , ' ') END;o_action := CASE WHEN i.action = chr(0) THEN null ELSE nvl(i.action , ' ') END;o_client_identifier := CASE WHEN i.client_identifier = chr(0) THEN null ELSE nvl(i.client_identifier , ' ') END;o_service_name := CASE WHEN i.service_name = chr(0) THEN null ELSE nvl(i.service_name , ' ') END;o_con_id := CASE WHEN i.con_id = chr(0) THEN null ELSE nvl(i.con_id , ' ') END;-- print the AAS and activity % as the first columnsl_output_line := '';if output_actses = 1 then l_output_line := l_output_line || lpad(to_char(round(i.average_active_samples,2),'9999.99'), w_actses, ' '); end if;if output_actses_pct = 1 then l_output_line := l_output_line || lpad('('||to_char(round(i.average_active_samples*100))||'%)', w_actses_pct, ' '); end if;-- loop through ash columns to find what to print and in which orderfor s in (SELECT LEVEL, SUBSTR( TOKEN, DECODE(LEVEL, 1, 1, INSTR(TOKEN, DELIMITER, 1, LEVEL-1)+1), INSTR(TOKEN, DELIMITER, 1, LEVEL) -DECODE(LEVEL, 1, 1, INSTR(TOKEN, DELIMITER, 1, LEVEL-1)+1)) TOKENFROM ( SELECT REPLACE( LOWER(p_ash_columns) ,' ','')||'+' AS TOKEN, '+' AS DELIMITERFROM DUAL)CONNECT BY INSTR(TOKEN, DELIMITER, 1, LEVEL)>0 ORDER BY LEVEL ASC) loopl_output_line := l_output_line || ' | ' ||case s.token-- actual column names in gv$sessionwhen 'inst_id' then lpad(o_inst_id , w_inst_id , ' ')when 'con_id' then lpad(o_con_id , w_con_id , ' ')when 'sid' then lpad(o_sid , w_sid , ' ')when 'username' then rpad(o_username , w_username , ' ')when 'machine' then rpad(o_machine , w_machine , ' ')when 'terminal' then rpad(o_terminal , w_terminal , ' ')when 'program' then rpad(o_program , w_program , ' ')when 'event' then rpad(o_event , w_event , ' ')when 'wait_class' then rpad(o_wait_class , w_wait_class , ' ')when 'state' then rpad(o_state , w_state , ' ')when 'p1' then rpad(o_p1 , w_p1 , ' ')when 'p2' then rpad(o_p2 , w_p2 , ' ')when 'p3' then rpad(o_p3 , w_p3 , ' ')when 'row_wait_obj#' then rpad(o_row_wait_obj# , w_row_wait_obj# , ' ')when 'row_wait_file#' then rpad(o_row_wait_file# , w_row_wait_file# , ' ')when 'row_wait_block#' then rpad(o_row_wait_block# , w_row_wait_block# , ' ')when 'row_wait_row#' then rpad(o_row_wait_row# , w_row_wait_row# , ' ')when 'blocking_session_status' then rpad(o_blocking_session_status , w_blocking_session_status , ' ')when 'blocking_instance' then rpad(o_blocking_instance , w_blocking_instance , ' ')when 'blocking_session' then rpad(o_blocking_session , w_blocking_session , ' ')when 'sql_hash_value' then rpad(o_sql_hash_value , w_sql_hash_value , ' ')when 'sql_id' then rpad(o_sql_id , w_sql_id , ' ')when 'sql_child_number' then rpad(o_sql_child_number , w_sql_child_number , ' ')when 'plsql_entry_object_id' then rpad(o_plsql_entry_object_id , w_plsql_entry_object_id , ' ')when 'plsql_entry_subprogram_id' then rpad(o_plsql_entry_subprogram_id , w_plsql_entry_subprogram_id, ' ')when 'plsql_object_id' then rpad(o_plsql_object_id , w_plsql_object_id , ' ')when 'plsql_subprogram_id' then rpad(o_plsql_subprogram_id , w_plsql_subprogram_id , ' ')when 'module' then rpad(o_module , w_module , ' ')when 'action' then rpad(o_action , w_action , ' ')when 'client_identifier' then rpad(o_client_identifier , w_client_identifier , ' ')when 'service_name' then rpad(o_service_name , w_service_name , ' ')-- aliases for convenience (only either real name or alias should be used together at the same time) when 'user' then rpad(o_username , w_username , ' ')when 'obj' then rpad(o_row_wait_obj# , w_row_wait_obj# , ' ')when 'file' then rpad(o_row_wait_file# , w_row_wait_file# , ' ')when 'block' then rpad(o_row_wait_block# , w_row_wait_block# , ' ')when 'row' then rpad(o_row_wait_row# , w_row_wait_row# , ' ')when 'bss' then rpad(o_blocking_session_status , w_blocking_session_status , ' ')when 'bsi' then rpad(o_blocking_instance , w_blocking_instance , ' ')when 'bs' then rpad(o_blocking_session , w_blocking_session , ' ')when 'sql' then rpad(o_sql_hash_value , w_sql_hash_value , ' ')when 'sqlid' then rpad(o_sql_id , w_sql_id , ' ')when 'child' then rpad(o_sql_child_number , w_sql_child_number , ' ')when 'plsql_eoid' then rpad(o_plsql_entry_object_id , w_plsql_entry_object_id , ' ')when 'plsql_esubpid' then rpad(o_plsql_entry_subprogram_id , w_plsql_entry_subprogram_id, ' ')when 'plsql_oid' then rpad(o_plsql_object_id , w_plsql_object_id , ' ')when 'plsql_subpid' then rpad(o_plsql_subprogram_id , w_plsql_subprogram_id , ' ')when 'mod' then rpad(o_module , w_module , ' ')when 'act' then rpad(o_action , w_action , ' ')when 'cid' then rpad(o_client_identifier , w_client_identifier , ' ')when 'service' then rpad(o_service_name , w_service_name , ' ')when 'wait_event' then rpad(o_event , w_event , ' ')when 'wait_state' then rpad(o_state , w_state , ' ')else''end; -- case s.tokenend loop; -- ash parameter tokenizeroutput(l_output_line);end loop; -- grouped ash samplesend out_ash;-- and it begins!!! begin-- get snappers own sid into g_mysidselect sid into g_mysid from v$mystat where rownum = 1;pagesize := nvl( getopt('&snapper_options', 'pagesize=' ), pagesize);--output ( 'Pagesize='||pagesize );lv_ash := getopt('&snapper_options', 'ash');lv_stats := getopt('&snapper_options', 'stat');if lv_ash is not null then gather_ash := 1; end if;if lv_stats is not null then gather_stats := 1; end if;--output('all='||case when getopt('&snapper_options', 'all') = chr(0) then 'chr(0)' when getopt('&snapper_options', 'all') is null then 'null' else (getopt('&snapper_options','all')) end);-- some additional default value logicif getopt('&snapper_options', 'all') is not null then--output('setting stats to all due to option = all');gather_stats := 1;gather_ash := 1;else if (lv_ash is null and lv_stats is null) thengather_stats := 0; gather_ash := 1;end if;end if;-- determine which performance counters and stats to collectlv_gather := case nvl( lower(getopt ('&snapper_options', 'gather=')), 'stw')when 'all' then 'stw'else nvl( lower(getopt ('&snapper_options', 'gather=')), 'stw')end;--lv_gather:=getopt ('&snapper_options', 'gather=');--output('lv_gather='||lv_gather);g_snap_begin := lower(getopt('&snapper_options', 'begin' ));g_snap_end := lower(getopt('&snapper_options', 'end' ));--output('g_snap_begin = '||g_snap_begin); --output('g_snap_end = '||g_snap_end); if pagesize > 0 thenoutput(' ');output('-- Session Snapper v4.24 - by Tanel Poder ( http://blog.tanelpoder.com/snapper ) - Enjoy the Most Advanced Oracle Troubleshooting Script on the Planet! :)');output(' ');end if;-- initialize statistic and event name array-- fetch statistic names with their adjusted IDsselect /* get_stat_names */ *bulk collect into sn_tmpfrom (select 'STAT' stype, statistic# - pls_adjust statistic#, namefrom v$statnamewhere (lv_gather like '%s%' or lv_gather like '%a%')--union allselect 'WAIT',event# + (select count(*) from v$statname) + 1 - pls_adjust, namefrom v$event_namewhere (lv_gather like '%w%' or lv_gather like '%a%')--union allselect 'TIME' stype, stat_id - pls_adjust statistic#, stat_name namefrom gv$sys_time_modelwhere (lv_gather like '%t%' or lv_gather like '%a%')--union allselect 'LATG',l.latch# +(select count(*) from v$statname) +(select count(*) from v$event_name) +1 - pls_adjust statistic#,namefrom gv$latch lwhere (lv_gather like '%l%' or lv_gather like '%a%')--&_IF_X_ACCESSIBLE union all&_IF_X_ACCESSIBLE select 'BUFG',&_IF_X_ACCESSIBLE indx +&_IF_X_ACCESSIBLE (select count(*) from v$statname) +&_IF_X_ACCESSIBLE (select count(*) from v$event_name) +&_IF_X_ACCESSIBLE (select count(*) from gv$latch) +&_IF_X_ACCESSIBLE 1 - pls_adjust statistic#,&_IF_X_ACCESSIBLE kcbwhdes name&_IF_X_ACCESSIBLE from x$kcbwh&_IF_X_ACCESSIBLE where (lv_gather like '%b%' or lv_gather like '%a%')--union allselect 'ENQG',ascii(substr(e.eq_type,1,1))*256 + ascii(substr(e.eq_type,2,1)) +(select count(*) from v$statname) +(select count(*) from v$event_name) +(select count(*) from gv$latch) +&_IF_X_ACCESSIBLE (select count(*) from x$kcbwh) +1 - pls_adjust statistic#,eq_typefrom (select es.eq_type||' - '||lt.nameeq_type,total_req#fromgv$enqueue_stat es, gv$lock_type ltwhere es.eq_type = lt.type) ewhere (lv_gather like '%e%' or lv_gather like '%a%')) snapper_statnamesorder by stype, statistic#;-- store these into an index_by array organized by statistic# for fast lookupfor i in 1..sn_tmp.count loopsn(sn_tmp(i).statistic#) := sn_tmp(i);sn_reverse(sn_tmp(i).stype||','||sn_tmp(i).name) := sn_tmp(i);end loop;-- main sampling loopfor c in 1..&snapper_count loop-- sesstat and other performance counter samplingif gather_stats = 1 then-- print header if requiredgv_header_string :=CASE WHEN output_header = 1 THEN 'HEAD,' END|| CASE WHEN output_inst = 1 THEN ' INST,' END|| CASE WHEN output_sid = 1 THEN ' SID,' END|| CASE WHEN output_inst_sid = 1 THEN ' SID @INST,' END|| CASE WHEN output_username = 1 THEN ' USERNAME ,' END|| CASE WHEN output_time = 1 THEN ' SNAPSHOT START ,' END|| CASE WHEN output_seconds = 1 THEN ' SECONDS,' END|| CASE WHEN output_stype = 1 THEN ' TYPE,' END|| CASE WHEN output_sname = 1 THEN rpad(' STATISTIC',59,' ')||',' END|| CASE WHEN output_delta = 1 THEN ' DELTA,' END|| CASE WHEN output_delta_s = 1 THEN ' DELTA/SEC,' END|| CASE WHEN output_hdelta = 1 THEN ' HDELTA,' END|| CASE WHEN output_hdelta_s = 1 THEN ' HDELTA/SEC,' END|| CASE WHEN output_percent = 1 THEN ' %TIME,' END|| CASE WHEN output_pcthist = 1 THEN ' GRAPH ,' END|| CASE WHEN output_eventcnt = 1 THEN ' NUM_WAITS,' END|| CASE WHEN output_eventcnt_s = 1 THEN ' WAITS/SEC,' END|| CASE WHEN output_eventavg = 1 THEN ' AVERAGES ' END;if g_snap_begin is null thenif pagesize > 0 and mod(c-1, pagesize) = 0 thenoutput(rpad('-',length(gv_header_string),'-'));output(gv_header_string);output(rpad('-',length(gv_header_string),'-'));elseif pagesize = -1 and c = 1 thenoutput(gv_header_string);end if;end if;elseoutput('Taking BEGIN sample ...');end if;-- TODO raise an error if both begin and end are used together-- TODO conditionally comment out the refcursor use unless begin and end is used-- manual before/after snapshots (snapper v4)if g_snap_begin is not null or g_snap_end is not null thenif g_snap_begin is not null thenget_sessions;snap(d1,s1,l1,g_snap1); &_MANUAL_SNAPSHOT open :snapper for select column_value rec from table(g_snap1); -- if you see this error then run: "VAR SNAPPER REFCURSOR" first!exit;end if;if g_snap_end is not null then &_MANUAL_SNAPSHOT fetch :snapper bulk collect into g_snap1; -- You should run snapper with BEGIN option first!-- procedure snap_from_stats_string (p_string_stats in sys.dbms_debug_vc2coll, p_snapdate out date, p_stats out stab, l_stats out ltab)snap_from_stats_string(g_snap1, d1, s1, l1);end if;else -- normal interval samplingif c = 1 thenget_sessions;snap(d1,s1,l1,g_snap1);elseget_sessions;d1 := d2;s1 := s2;g_snap1 := g_snap2;end if; -- c = 1end if;end if; -- gather_stats = 1-- ASH style sampling &_USE_DBMS_LOCK ash_date1 := sysdate; &_USE_DBMS_LOCK if gather_ash = 1 then &_USE_DBMS_LOCK while sysdate < (ash_date1 + (&snapper_sleep/86400)) loop &_USE_DBMS_LOCK -- get active session records from g_sessions &_USE_DBMS_LOCK get_sessions; &_USE_DBMS_LOCK extract_ash(); &_USE_DBMS_LOCK -- sleep timeout backoff depending on the duration sampled (for up to 10 seconds total sampling time will get max 100 Hz sampling) &_USE_DBMS_LOCK -- for longer duration sampling the algorithm will back off and for long durations (over 100 sec) the sampling rate will stabilize &_USE_DBMS_LOCK -- at 1Hz &_USE_DBMS_LOCK dbms_lock.sleep( greatest(0.1,(least(1,&snapper_sleep*&snapper_count/100))) ); &_USE_DBMS_LOCK end loop; &_USE_DBMS_LOCK else &_USE_DBMS_LOCK dbms_lock.sleep( ((ash_date1+(&snapper_sleep/86400)) - sysdate)*86400 ); &_USE_DBMS_LOCK null; &_USE_DBMS_LOCK end if; &_USE_DBMS_LOCK ash_date2 := sysdate; -- sesstat new sample and delta calculationif gather_stats = 1 thenget_sessions;snap(d2,s2,l2,g_snap2);-- manually coded nested loop outer join for calculating deltas:-- why not use a SQL join? this would require creation of PL/SQL -- collection object types, but Snapper does not require any changes -- to the database, so any custom object types are out! changed_values := 0;missing_values_s1 := 0;missing_values_s2 := 0;-- remember last disappeared SID so we wouldn't need to output a warning -- message for each statistic row of that disappeared sid disappeared_sid := 0;i :=1; -- iteration counter (for debugging)a :=1; -- s1 array indexb :=1; -- s2 array indexif s2.count > 0 then lv_curr_sid := s2(b).sid; end if;while ( a <= s1.count and b <= s2.count ) loopif lv_curr_sid != 0 and lv_curr_sid != s2(b).sid thenif pagesize > 0 and mod(c-1, pagesize) = 0 then-- if filtering specific stats, assuming that it's better to not leave spaces between every session dataif getopt('&snapper_options', 'sinclude=')||getopt('&snapper_options', 'tinclude=' )||getopt('&snapper_options', 'winclude=' ) is null thenoutput(' ');-- output(rpad('-',length(gv_header_string),'-'));-- output(gv_header_string);-- output(rpad('-',length(gv_header_string),'-'));end if;end if;lv_curr_sid := s2(b).sid;end if;delta := 0; -- don't printcasewhen s1(a).sid = s2(b).sid thencasewhen s1(a).statistic# = s2(b).statistic# thendelta := s2(b).value - s1(a).value;evcnt := s2(b).event_count - s1(a).event_count;--output('DEBUG, s1(a).statistic# s2(b).statistic#, a='||to_char(a)||' b='||to_char(b)||' s1.count='||s1.count||' s2.count='||s2.count||' s2.count='||s2.count);if delta != 0 then fout(); end if;a := a + 1;b := b + 1;when s1(a).statistic# > s2(b).statistic# thendelta := s2(b).value;evcnt := s2(b).event_count;if delta != 0 then fout(); end if;b := b + 1;when s1(a).statistic# < s2(b).statistic# thenoutput('ERROR, s1(a).statistic# < s2(b).statistic#, a='||to_char(a)||' b='||to_char(b)||' s1.count='||s1.count||' s2.count='||s2.count||' s2.count='||s2.count);a := a + 1;b := b + 1;elseoutput('ERROR, s1(a).statistic# ? s2(b).statistic#, a='||to_char(a)||' b='||to_char(b)||' s1.count='||s1.count||' s2.count='||s2.count||' s2.count='||s2.count);a := a + 1;b := b + 1;end case; -- s1(a).statistic# ... s2(b).statistic#when s1(a).sid > s2(b).sid thendelta := s2(b).value;evcnt := s2(b).event_count;if delta != 0 then fout(); end if;b := b + 1;when s1(a).sid < s2(b).sid thenif disappeared_sid != s1(a).sid thenoutput('WARN, Session has disappeared since previous snapshot, ignoring SID='||to_char(s1(a).sid)||' debug(a='||to_char(a)||' b='||to_char(b)||' s1.count='||s1.count||' s2.count='||s2.count||' s2.count='||s2.count||')');end if;disappeared_sid := s1(a).sid; a := a + 1;elseoutput('ERROR, Should not be here, SID='||to_char(s2(b).sid)||' a='||to_char(a)||' b='||to_char(b)||' s1.count='||s1.count||' s2.count='||s2.count||' s2.count='||s2.count);end case; -- s1(a).sid ... s2(b).sidi:=i+1;if delta != 0 thenchanged_values := changed_values + 1;end if; -- delta != 0end loop; -- while ( a <= s1.count and b <= s2.count )if pagesize > 0 and changed_values > 0 then output(' ');output('-- End of Stats snap '||to_char(c)||', end='||to_char(d2, 'YYYY-MM-DD HH24:MI:SS')||', seconds='||round(get_seconds(d2-d1), 1)); end if;output(' ');end if; -- gather_stats = 1if gather_ash = 1 then-- get ASH sample grouping detailsg_ash_columns := nvl( getopt('&snapper_options', 'ash=' ), g_ash_columns );-- optional additional ASH groupingsg_ash_columns1 := case when getopt('&snapper_options', 'ash1' ) is null then null when getopt('&snapper_options', 'ash1' ) = chr(0) then g_ash_columns1 else getopt('&snapper_options', 'ash1=' ) end;g_ash_columns2 := case when getopt('&snapper_options', 'ash2' ) is null then null when getopt('&snapper_options', 'ash2' ) = chr(0) then g_ash_columns2 else getopt('&snapper_options', 'ash2=' ) end;g_ash_columns3 := case when getopt('&snapper_options', 'ash3' ) is null then null when getopt('&snapper_options', 'ash3' ) = chr(0) then g_ash_columns3 else getopt('&snapper_options', 'ash3=' ) end;g_ash_columns4 := case when getopt('&snapper_options', 'ash4' ) is null then null when getopt('&snapper_options', 'ash4' ) = chr(0) then g_ash_columns4 else getopt('&snapper_options', 'ash4=' ) end;g_ash_columns5 := case when getopt('&snapper_options', 'ash5' ) is null then null when getopt('&snapper_options', 'ash5' ) = chr(0) then g_ash_columns5 else getopt('&snapper_options', 'ash5=' ) end;g_ash_columns6 := case when getopt('&snapper_options', 'ash6' ) is null then null when getopt('&snapper_options', 'ash6' ) = chr(0) then g_ash_columns6 else getopt('&snapper_options', 'ash6=' ) end;-- group ASH records and print reportout_ash( g_ash_columns, 10 );-- group and print optional ASH reportsif g_ash_columns1 is not null then out_ash( g_ash_columns1, 10 ); end if;if g_ash_columns2 is not null then out_ash( g_ash_columns2, 10 ); end if;if g_ash_columns3 is not null then out_ash( g_ash_columns3, 10 ); end if;if g_ash_columns4 is not null then out_ash( g_ash_columns4, 10 ); end if;if g_ash_columns5 is not null then out_ash( g_ash_columns5, 10 ); end if;if g_ash_columns6 is not null then out_ash( g_ash_columns6, 10 ); end if;if pagesize > 0 then output(' '); output('-- End of ASH snap '||to_char(c)||', end='||to_char(ash_date2, 'YYYY-MM-DD HH24:MI:SS')||', seconds='||to_char(round((ash_date2-ash_date1) * 86400, 1))||', samples_taken='||g_ash_samples_taken||', AAS='||CASE WHEN g_ash_samples_taken = 0 THEN '(No ASH sampling in begin/end snapshot mode)' ELSE TO_CHAR(ROUND(g_ash.COUNT/NULLIF(g_ash_samples_taken,0),1)) END ); --output('-- End of ASH snap '||to_char(c)||', end='||to_char(ash_date2, 'YYYY-MM-DD HH24:MI:SS')||', seconds='||to_char(round((ash_date2-ash_date1) * 86400, 1))||', samples_taken='||g_ash_samples_taken||', AAS='||TO_CHAR(ROUND(g_ash.COUNT/g_ash_samples_taken,1))||', Active%='||TO_CHAR(ROUND(g_ash.COUNT/g_ash_samples_taken*100,1))||'%' ); output(' '); end if;reset_ash();end if; -- gather_ash = 1end loop; -- for c in 1..snapper_countexception when others thenraise_application_error(-20000, 'Snapper: Probably bad syntax or no execute rights on SYS.DBMS_LOCK'||chr(10)||'Check http://blog.tanelpoder.com/snapper for instructions'||chr(10)||sqlerrm);end; /undefine snapper_sleep undefine snapper_count undefine snapper_sid undefine ssid_begin undefine _IF_ORA12_OR_HIGHER undefine _IF_ORA11_OR_HIGHER undefine _IF_LOWER_THAN_ORA11 undefine _IF_LOWER_THAN_ORA12 undefine _NO_BLK_INST undefine _YES_BLK_INST undefine _NO_PLSQL_OBJ_ID undefine _YES_PLSQL_OBJ_ID undefine _IF_DBMS_SYSTEM_ACCESSIBLE undefine _IF_X_ACCESSIBLE undefine _MANUAL_SNAPSHOT undefine _USE_DBMS_LOCK col snapper_ora12higher clear col snapper_ora12lower clear col snapper_ora11higher clear col snapper_ora11lower clear col dbms_system_accessible clear col x_accessible clear col no_plsql_obj_id clear col yes_plsql_obj_id clear col no_blk_inst clear col yes_blk_inst clear col manual_snapshot clear col use_dbms_lock clear col snapper_sid clear col sid_filter clear col inst_filter clear set serveroutput off



    轉載于:https://www.cnblogs.com/Clark-cloud-database/p/7814261.html

    總結

    以上是生活随笔為你收集整理的推荐一个很好用的脚本session snapper的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    aaa欧美日韩 | 性——交——性——乱免费的 | 亚洲天堂一区 | 欧美肥臀大乳一区二区免费视频 | 日本成人在线一区 | 91网站在线免费观看 | 亚洲精品99 | 美丽的姑娘国语视频 | 91精品国产综合久久久蜜臀粉嫩 | 欧美 唯美 清纯 偷拍 | 四虎成人网 | 成人夜色电影 | 精品国产免费一区二区三区香蕉 | 麻豆传媒观看 | 黄床大片| 高清日韩一区 | 美痴女~美人上司北岛玲 | 福利小视频 | 九月丁香婷婷 | 亚洲精选中文字幕 | 成片免费 | 男欢女爱久石 | 91久久综合亚洲鲁鲁五月天 | 麻豆网站视频 | 婷婷久草 | 日本女人网站 | 91一区二区在线 | 亚洲国产精品麻豆 | 黄漫视频网站 | 色综合一| 亚洲欧美另类自拍 | 日本a级黄色 | 中文字| 日韩精品免费在线观看 | 久久婷婷亚洲 | 婷婷综合电影 | 日本在线一区二区三区 | 亚洲国产精品久久久久秋霞蜜臀 | 欧美大尺度视频 | 黄色午夜网站 | 伊人精品综合 | 激情综合色综合久久综合 | 少妇一边呻吟一边说使劲视频 | 东京怡红院 | 牛牛在线精品视频 | 口述3p做爰全过程 | 亚洲制服丝袜一区 | 国产成人精品av在线 | 波多野结衣在线观看一区二区三区 | 成人欧美一区二区三区在线 | 黑人巨大精品欧美一区二区 | 私人影院毛片 | 丝袜护士强制脚足取精 | 国产在线激情视频 | 亲切的金子片段 | 色哟哟网站入口 | 91国产精品91 | 在线视频免费播放 | 黄上黄在线观看 | 久久精品伊人 | 深夜激情视频 | 中文字幕一二区 | 精品国产乱码久久久久久图片 | 超碰狠狠| 伊甸园精品99久久久久久 | 亚洲三级电影网站 | 色妞www精品视频 | 国产区视频在线 | 精品日韩电影 | 国产一区二区日韩精品 | 草莓视频污在线播放 | 欧美日韩国产成人在线观看 | 迷嫩下药灌醉一区二区 | 免费调色大片60分钟视频 | 国产精品第一区 | 日韩激情视频网站 | 国产综合在线视频 | 中文字幕亚洲精品 | 精品久久久视频 | 日本一级网站 | 57pao国产一区二区 | 免费在线视频播放 | 女人扒开屁股 | 献给魔王伊伏洛基亚吧动漫在线观看 | 亚洲精品自在在线观看 | 成人av动漫在线观看 | 永久免费啪啪网站 | 欧美成人网在线 | 色哟哟在线网站 | 成人av图片 | 日本视频在线免费观看 | 欧美一级淫片videoshd | 视频一区二区在线观看 | 亚洲视频精品一区 | 电影寂寞少女免费观看 | 黄色漫画免费观看 | 亚洲第一激情 | 成码无人av片在线观看网站 | 激情小说在线 | 性渴老太作爱 | 极品丝袜乱系列全集 | 自拍偷拍av | 国产在线精品二区 | 91av精品| 丁香六月综合 | 蜜桃av噜噜一区二区三区 | av漫画网| 国产欧美一区二区三区网站 | 一区二区三区欧美视频 | 国产一区二区欧美日韩 | 999免费网站 | 色综合久久天天 | 欧美另类在线播放 | 日韩免费成人网 | 视频推荐 | 国产99久久久国产精品免费看 | 国产在线资源网 | 天堂在线网 | 色资源av| av一区二区在线观看 | 色综合91 | 特级淫片裸体免费看 | 日韩精品极品视频免费观看 | 极品少妇小说 | 中文字幕av最新 | 日本一区二区久久 | 亚洲国产精品99久久久久久久久 | 撸啊撸在线视频 | 欧美日韩免费 | 日韩一二区 | 日韩在线观看一区 | 亚洲精品视频在线观看免费 | 亚洲麻豆国产自偷在线 | 精品国产一区二区三区av性色 | 久久国产精品一区二区三区四区 | 国产性猛交╳xxx乱大交 | 日韩欧美成人一区二区 | 久久另类ts人妖一区二区 | 老女人丨91丨九色 | 欧美日韩导航 | 另类图片激情小说 | 伊人久久视频 | 欧美激情视频在线 | 精品日韩在线 | 国产精品5 | 97超碰欧美中文字幕 | 鲁一鲁在线 | 欧美人与禽性xxxxx杂性 | 97视频在线观看免费高清完整版在线观看 | 国产在线观看a | 黄页在线观看 | 久草一区二区 | 开心色婷婷 | 国产91色在线 | 亚洲 | 成人精品亚洲人成在线 | 欧美精品免费在线观看 | 亚洲美女免费在线 | 91丨九色丨蝌蚪丨老板 | 久久97久久97精品免视看 | 白石茉莉奈黑人 | 亚洲欧洲精品在线观看 | 综合日韩在线 | 亚洲人高潮女人毛茸茸 | 国产资源网站 | free国产hd露脸性开放 | 美女自拍视频 | 亚洲专区一区 | 男女同房视频在线观看 | 福利片免费在线观看 | 亚洲视频一二三区 | 美女脱光衣服让男人桶 | 国产成人精品一区二区三区视频 | 中文字幕乱视频 | 久久99国产精一区二区三区 | 一区二区三区中文字幕 | 日韩视频免费看 | 色多多污 | 色蜜臀av | av地址在线 | 欧美久久精品一级黑人c片 国产一区二区在线免费视频 | 欧美在线观看视频 | 开心黄色网 | 麻豆视频网站在线观看 | 91九色精品视频 | 91精品国产成人www | 篠田优在线 | 91黄色免费版 | 波多野结衣在线观看一区二区三区 | 丰满老女人高潮呻吟 | 91精品久久久久久久久久入口 | 国产精品v欧美精品v日韩精品 | 国产区精品视频 | 97在线精品视频 | 日韩免费一区 | 国产精品三级电影 | 一区二区在线观看国产 | 秋霞影院午夜伦 | 伊人久久久久久久久久久久久 | 一本久在线 | 亚洲精品国产精品国自产 | 在线观看av网站 | 福利视频免费看 | 亚洲综合在线中文字幕 | 牛夜精品久久久久久久99黑人 | 亚洲国产成人va在线观看天堂 | 91日韩在线视频 | 影音先锋中文字幕在线播放 | 日本女优电影在线播放 | 亚洲成人激情av | 亚洲三级视频在线观看 | 超碰在线97av | 黄色成人91| 亚洲欧洲视频在线 | 精品国产乱码久久久久久影片 | 综合成人在线 | 番号动态图 | 欧美日韩小说 | 在线看av网址 | 久久久久久中文字幕 | 黄色大片国产 | 男人天堂久久 | 成人免费在线视频 | 精品女同一区二区 | 又色又爽又黄的网站 | 黄网免费在线 | 黄色小说网站在线观看免费 | 激情视频免费在线 | av黄色免费在线观看 | 青青草av免费在线观看 | 色八戒av| 日本在线视频www色 哪里可以免费看av 国产成人在线影院 | 欧洲成人综合网 | 芒果视频在线观看免费 | 1769国产精品 | 黄网站免费观看视频 | 国产网站色 | 一区二区三区在线观看欧美 | 欧美无乱码久久久免费午夜一区 | 亚洲成人基地 | 成人看黄色片 | 中文字幕2022| 影音先锋黑人 | 黑人操亚洲女 | 国产成人精品在线视频 | 国产97在线亚洲 | 黄色大片网站在线观看 | av免费高清 | 色片网址 | 一本一道久久a久久精品蜜桃 | 久久久最新网址 | 成av在线 | 6080yy精品一区二区三区 | 美女露胸无遮挡 | 免费人成黄页网站在线观看 | 精品久久久久久久久久 | 人妖一区 | 丁香花电影在线观看免费高清 | 欧美另类第一页 | 人人爽人人射 | 国产欧美日韩中文久久 | 免费成人深夜夜行p站 | 欧美激情精品 | 亲嘴舌吻捏胸完整版 | 日韩欧美在线视频 | 尤物最新网址 | 国产三级视频在线 | 免费看操片 | 亚洲激情在线 | 韩国黄色一级片 | www.久久久久| 国产剧情在线观看 | 亚洲成人免费在线视频 | 国产精品乱码一区二三区小蝌蚪 | 日本免费一区二区三区四区 | 免费毛片在线播放 | 日本黄色精品 | 高清欧美性猛交xxxx黑人猛交 | 美女吊逼 | 中文字幕一区二区在线播放 | 国产精品自拍网 | 国产又大又黄又粗 | 日韩福利视频导航 | 国产男女爽爽爽 | 你懂的视频导航 | 午夜电影二区 | 综合久久国产九一剧情麻豆 | 人人草超碰 | 91亚洲国产成人久久精品网站 | 免费不卡在线视频 | 色欧美片视频在线观看 | 草莓视频在线 | 久久一区欧美 | 超碰人人超碰 | 亚洲日本成人在线观看 | 五月小说 | 91麻豆国产福利精品 | 久9999| 91精品国产综合久久福利软件 | 男女操鸡视频 | 日本丰满少妇一区二区三区 | 亚洲素人av | 麻豆视频网站 | 国产黑丝在线 | 国产一区二区在线观看视频 | 黑人激情视频 | 日韩av成人在线观看 | 午夜国产精品一区 | 日本五十路电影 | 国产乱码精品一品二品 | 欧美资源在线 | 男女互操视频网站 | 日本韩国欧美一区 | 伊人视频在线观看 | 国产黄色高清视频 | 日本一区视频在线播放 | 午夜在线一区 | 亚洲网站在线播放 | 欧美成人免费 | 亚洲国产福利在线 | 午夜av电影在线观看 | 久久99成人 | 国产高清一区二区 | 美女脱了裤子让男人捅 | 97人人模人人爽人人少妇 | 国产高清自拍视频在线观看 | 先锋影音av男人站 | 国产欧美精品一区二区色综合朱莉 | 欧美极品第一页 | 中国av一区 | 今天高清视频在线观看视频 | 欧美 日韩 综合 | 蜜芽一区二区三区 | 国模无码大尺度一区二区三区 | 日本视频免费看 | 操老女人视频 | 成人黄色免费观看 | 国产精品正在播放 | 夜夜草导航 | 午夜色婷婷 | 一级片在线免费观看 | 亚洲久久视频 | 亚洲欧美影音先锋 | 色视频一区二区 | 丝袜老师让我了一夜网站 | 色悠悠在线视频 | 国产精品久久久久无码av | 91九色国产在线 | 日本视频四区 | 中文日韩 | 欧美色亚洲 | 四虎色影院| 欧洲精品在线一区 | 99er在线 | 欧美重口 | 韩国三级中文字幕hd浴缸戏 | 亚洲精品乱码久久久久久久久 | 精品一区二区免费视频 | 一区二区三区国产精华 | 成人精品电影 | 99re视频在线观看 | 中文字幕三级电影 | 制服丝袜亚洲色图 | 骚色在线| 欧美一区二区久久 | 日韩有码一区二区三区 | 久久中文网 | 婷婷色国产偷v国产偷v小说 | 和美女啪啪 | 精品久久久久久久久久久久久久 | 看美女的网站 | 在线毛片网 | 亚洲区国产区 | 涩涩视频免费观看 | 天堂а√在线地址中文在线 | 亚洲www永久成人夜色 | 国产精选在线 | 美女张开腿让我 | 亚洲第一天堂 | 成人做爰视频www网站小优视频 | 国产精品综合色区在线观看 | av线上免费看| 日本青草视频 | 视频免费在线观看 | 免费欧美在线 | 影音先锋 成人 | 国产欧美日韩精品a在线观看 | 亚洲国产日韩欧美 | 丰满少妇xoxoxo视频 | avhd101高清老司机 | 欧美一区二区黄色 | 麻豆国产成人av一区二区三区 | 国产精品免费一区二区三区四区 | 亚洲一区二区三区视频在线 | 女同黄色小说 | 精品一区二区三区日本 | 看毛片.com| 黄色小视频在线看 | 欧洲天堂在线观看 | 超碰人人搞 | 人妖天堂狠狠ts人妖天堂狠狠 | 伊人久久久久久久久久久久久 | 999在线免费观看视频 | 激情五月网站 | 蜜桃av电影在线观看 | 丁香激情五月少妇 | 亚洲影视在线 | 天堂av在线 | 国产精品久久午夜 | 日韩av在线影视 | 亚洲视频免费在线观看 | 亚洲精品久久久久久一区二区 | 欧美精品福利 | 精品少妇一区二区三区免费观看 | 欧美精品18videosex性欧美 | 亚洲激情校园春色 | 免费成人在线播放 | 久草资源在线观看 | 一区二区欧美激情 | 99999久久久久久亚洲 | 成人网视频| 捆绑调教一区二区三区 | 国产精品欧美亚洲777777 | 福利一区在线 | 红桃视频成人在线 | 亚洲精品第一页 | 日日摸夜夜爽 | 午夜男生视频 | 国产主播一区 | 九九热九九 | 国产精品不卡 | 精品视频日韩 | 免费av电影网站 | 超碰精品在线观看 | 俺也来俺也去俺也射 | 韩国理论在线视频 | 国产乱轮视频 | 日韩老熟 | 精品性欧美 | 麻豆精品在线看 | 欧美一区二区三区四区五区 | 日韩二区在线 | 奇米四色网 | 美女一区二区三区 | 日本大胆人体视频 | 日本免费一区二区三区视频 | 久久国产精品久久精品 | 日韩高清一级 | 日韩精品极品视频 | 97福利电影 | 天堂av在线网址 | 国产不卡在线播放 | 精品一二三四 | 亚洲激情国产精品 | 五月激情电影 | 美日韩三级 | 校园春色av | 91九色精品 | 欧美一区二区三区四区在线观看地址 | 香蕉视频网页版 | 鲁一鲁在线视频 | 99re视频在线 | 婷婷激情综合网 | 少妇激情一区二区三区视频 | 国产剧情一区二区三区 | 日本最黄网站 | 欧美精品资源 | 日韩免费高清 | 波岛野结衣 | 松本一香在线播放 | 91亚洲精品乱码久久久久久蜜桃 | 国产精品资源网站 | 高清一区二区三区视频 | 一区二区三区视频在线看 | 中文字幕亚洲视频 | 日本一级免费视频 | av导航站 | 国产最新视频在线观看 | 国产呦精品一区二区三区网站 | 美女视频黄频视频大全 | h视频网站在线观看 | 黄色大片在线 | 欧美日韩不卡一区二区 | 国产福利午夜 | 男人天堂色偷偷 | 精品国产日本 | 国产成人午夜视频 | 欧美激情第五页 | 波多野结衣高清电影 | 91精品视频一区二区 | 欧美性猛烈 | 久久久久久亚洲精品杨幂换脸 | 亚洲精品黄色 | 中午字幕在线观看 | 奇米影视第四色777 国产日韩中文字幕 | 天堂av一区二区三区 | 天天噜| 99国产一区 | 黄色小说网站在线观看 | 亚洲综合图片区 | 粉色视频免费观看 | 一区二区三区不卡视频在线观看 | 欧美freesex交免费视频 | 老女人色视频 | 免费观看中文字幕 | 成人av电影网站 | 先锋成人av | 2024男人天堂| 91视频亚洲| 精品一区二区影视 | 久久综合五月 | 欧美少妇裸体 | 欧美黑人多人双交 | 大黑人巨大荫蒂大交女人 | 久久婷五月| av网址在线播放 | 激情999 | 无遮挡aaaaa大片免费看 | 色老头一区二区三区 | 在线播放国产精品 | 欧美国产在线一区 | 自拍偷自拍亚洲精品被多人伦好爽 | 超碰免费视 | 9色综合 | 亚洲午夜一区二区三区 | 色国产视频 | 日韩欧美一二区 | 国产精彩视频在线播放 | 91精品一区二区三区久久久久久 | 你懂得影院 | 尤物视频免费观看 | 国内精品嫩模av私拍在线观看 | 国产香蕉久久精品综合网 | 国产精品91在线 | 精品在线视频一区二区 | 欧美成人一区二区三区 | h视频在线免费观看 | 香蕉久久夜色精品国产 | 少妇一区二区视频 | 女生被男生猛操 | 国产主播在线观看 | 99久免费精品视频在线观78 | 欧美日韩精品久久 | 亚洲女人av | 91麻豆精品国产自产在线观看一区 | 国产精品91在线 | 亚洲欧洲精品一区二区三区不卡 | 韩日小视频 | 麻豆91精品| 麻豆影视免费观看电影大全 | 亚洲 欧洲 一区 | 玖玖热在线视频 | 亚洲婷婷在线视频 | 亚洲女同一区二区 | 欧美精品乱码久久久久久 | 亚洲久久天堂 | 超碰青娱乐 | 手机在线观看av网站 | 久久99精品国产.久久久久 | 亚洲国产天堂久久综合 | 激情av一区| 日韩久久久久久久久久久久久 | 亚洲欧美一区二区激情 | 在线观看亚洲专区 | 国产日韩欧美精品在线 | 亚洲美女精品久久 | 日本久久一区 | 欧美mv日韩mv国产网站app | 一个色av | 黄页网站在线播放 | 日韩精品一区二区三区中文字幕 | 日韩中文字幕第一页 | 色综合电影网 | 一个色综合av | 国产情侣露脸自拍 | 中文字幕+乱码+中文字幕一区 | 久久国产加勒比精品无码 | 国偷自产av一区二区三区 | 在线精品福利 | 久久综合鬼色 | 亚洲va中文字幕 | 午夜精品久久久久久久久 | 中文字幕制服丝袜 | 黄色天天影视 | 欧美一级免费看 | 国内av片| 一级淫片在线观看 | 欧美亚洲另类久久综合 | 国产igao激情视频入口 | 亚洲va国产va天堂va久久 | 欧美福利一区二区三区 | 黄色片在线观看网站 | 国产区一二三 | 91国内在线 | 亚洲字幕 | 麻豆精品少妇 | 波多野结衣电影在线播放 | 黑人操日本女人视频 | 亚洲美女www午夜 | 日韩高清国产一区在线 | 日本免费一区二区三区视频观看 | 波多野结衣磁力链接 | 亚洲欧美一区二区激情 | 亚洲综合日韩在线 | 天堂素人约啪 | 免费人成网在线观看品观网 | 国产91精品露脸国语对白 | 国产精品99久久久久久动医院 | 国产小视频网站 | 国产成人福利片 | 欧美精品与人动性物交免费看 | av资源网站 | 国产美女av在线 | 一二三中文字幕 | 国产日韩在线不卡 | 色日本在线观看 | 美女爽到高潮91 | 视频一区 在线观看 | 国产精品爽爽爽爽爽爽在线观看 | 国产精品久久久久毛片软件 | 亚洲精品网址 | 中文成人在线 | 高清免费av | 国产成人精品久久久 | 白石茉莉奈番号 | 奇米精品一区二区三区在线观看一 | 性高潮网站 | 午夜探花在线 | 99视频免费观看 | 中文一区二 | 日本久久久久亚洲中字幕 | 成人国产精品av | 国产免费一 | 51亚洲精品| 中文字幕日本一区二区 | 欧美v亚洲v综合ⅴ国产v | 亚洲少妇诱惑 | 中国china露脸自拍性hd | 日本免费高清 | 牛牛在线视频 | 国产精品一区二区三区免费 | 一区二区三区资源 | av色影院| 欧美一区二区三区另类 | 男人天堂a| 男女被到爽流尿 | 豆花免费跳转入口官网 | 欧美成人精精品一区二区频 | 人人射人人爽 | 公交顶臀绿裙妇女配视频 | 色狠狠av | 黄色片网站免费在线观看 | 亚洲123区| 一区二区免费视频 | 日本xxx人妖hd丰满 | 免费成人av网站 | 成人高清在线视频 | 校花张开腿让我c | 欧美二区三区 | 91偷拍一区二区三区精品 | 国产在线免费视频 | 亚洲aaa级| 欧美日韩一区二区在线视频 | 国产91丝袜在线播放九色 | 国产激情美女久久久久久吹潮 | 色香欲综合网 | 国产伊人精品 | 欧美性理论片在线观看片免费 | 激情999 | 1区2区在线 | 91国产视频在线播放 | 卡通动漫亚洲综合 | 成人免费xxxxx在线观看 | 91在线观看免费高清完整版在线观看 | 性感美女在线观看 | 久久久一本精品99久久精品66 | 久久久久久亚洲av毛片大全 | 人人做人人爽人人爱 | 欧美专区日韩 | 亚洲久久久 | 亚洲男人的天堂一区二区 | 欧美精品一区二区三区蜜桃视频 | 国模精品视频一区二区三区 | free性丰满69性欧美hd | 高清日韩欧美 | 欧美mv日韩mv国产网站 | 我的大学私奴日记sm | 136fldh导航福利微拍 | 丝袜制服亚洲色图 | 韩国日本在线观看 | 欧美日韩黄视频 | 91插插插插| 久久躁日日躁aaaaxxxx | 97se亚洲| 日韩无一区二区 | 蜜桃久久av一区 | av成人在线电影 | 欧美亚洲国产一区二区三区 | 在线观看a级片 | 日本a级在线 | 国产又粗又猛又爽又黄91精品 | 欧美一二三区精品 | 国产麻豆精品一区 | 成人资源av | 强行侵犯视频在线观看 | 毛茸茸丰满大屁股 | 在线看片中文字幕 | 欧美激情视频在线播放 | 暴力调教一区二区三区 | 综合网中文字幕 | 黄色av小说 | 欧美精品在线一区 | 久久精品国产精品亚洲红杏 | 中文字幕av免费观看 | 久久精品噜噜噜成人88aⅴ | 香蕉精品久久 | 超碰狠狠 | 不卡的av | 日韩精品色哟哟 | 国产a成人 | 欧美一二三区在线 | 精品国产黄a∨片高清在线 成年人免费视频网 | 老牛影视免费一区二区 | 香蕉久久精品日日躁夜夜躁 | 综合色一区| 污黄视频网站 | 一区二区高清 | 五月天色综合 | 久久天堂网 | 欧美日本韩国国产 | 国产精品污 | 一区二区不卡在线 | 欧美va| 久久久国产精品免费 | 国产精品久久一级片 | av一区二区在线播放 | 亚洲一区二区自拍 | 国产成人免费av | 人人爽久久涩噜噜噜网站 | 欧美一级艳片视频免费观看 | 九九热电影| 波多野结衣高清av | 午夜av不卡 | 韩国三级黄色 | 淫语对白 | 国产一区av在线 | 卡一卡二卡三卡四 | av小说电影| 色88888久久久久久影院 | 国产三级网 | 欧美在线看片a免费观看 | 亚洲国产最新 | 国产视频亚洲 | 五月婷婷激情五月 | 亚洲精品一品区二品区三品区 | 黄色av电影在线观看 | 男人天堂网址 | av网站免费在线观看 | 色综合人人| 视频一区免费在线观看 | 黄色日韩网站 | 马拉维现在几点 | 自拍偷拍亚洲 | 免费在线中文字幕 | 亚洲综合热 | 欧美在线激情网 | 91免费精品 | 99国产精品久久久久久久成人热 | 麻豆传媒在线视频 | 国产精品视频久 | 日本伦理片在线播放 | 欧美少妇精品 | 成人做爰视频www网站小优视频 | h文在线看 | 人人澡人人澡人人澡 | 警花av一区二区三区 | 在线视频一区二区三区 | 亚洲第一天堂av | 新狼窝色av性久久久久久| 福利在线视频观看 | 欧美另类交人妖 | 欧美性在线视频 | 国产精品96 | 成人激情图片网 | 岛国av片 | 丁香综合 | 免费看裸体视频网站 | 日本看片网| 亚洲精品网站在线观看 | 国产在线小视频 | 高清电影免费 | 91黄色入口 | 美女扒开让男人桶爽 | 国产精品91久久 | 欧美a一级| 综合久久五月天 | 黑名单上的人全集免费观看 | 在线不卡日本v二区707 | 麻豆传媒在线免费 | 天天曰夜夜 | 武藤兰电影在线观看 | 激情五月综合 | 搞av在线电影 | 看片一区二区 | 中文字幕亚洲欧美 | 日韩国产一区二区 | 精品一区二区三区在线播放 | 视频一区二区在线观看 | av在线高清免费 | 欧美精选视频 | 成人h文| 欧美日韩爱爱 | 超清纯白嫩大学生啪啪网址 | 免费视频福利 | 在线观看黄网 | aaa一级片| 亚洲美女屁股眼交 | 亚洲一区二区三区四区的 | 久久九| 国产一区二区三区免费在线观看 | 日韩三级视频在线看 | 国产精品久久九九 | 亚洲石原莉奈一区二区在线观看 | 日本欧美不卡 | 欧美一区二区视频免费观看 | 日本不卡视频在线 | 久久精品国产综合 | 九色福利视频 | 天天看天天干 | 一区二区三区精品在线 | 亚洲图片另类小说 | 久久精品国产精品亚洲 | 亚洲精品乱码 | 日韩中文字幕在线免费观看 | 一级a性色生活片久久毛片 欧美xxxx黑人又粗又长密月 | 亚洲xxxx视频 | 国产色婷婷在线 | 欧美日韩播放 | 做床爱全过程激烈视频网站 | 国产精品视频在线播放 | 精品99又大又爽又硬少妇毛片 | 免费av资源在线 | 国产成人福利网站 | 91成人福利 | 91一区二区在线观看 | 久久躁日日躁aaaaxxxx | 亚洲一区二区免费 | 国产男男gay互吃浪小辉 | 精品免费观看 | 黄色免费网站在线观看 | 久久精工是国产品牌吗 | 先锋av影音| 国产视频在线观看网站 | 国产精品三区在线 | 国产乱码精品一品二品 | 国精产品一区一区三区mba桃花 | 野花国产精品入口 | 国产精品三级在线观看 | 国产天天草 | 玖玖色资源 | 日本一区二区不卡视频 | 国产精品系列在线观看 | 精品国产乱 | 高清视频一区二区三区 | 污视频导航| 色香色香欲天天天影视综合网 | 精品一区二区不卡 | 精品女同一区二区三区在线播放 | 日韩精品一区二区三区免费视频 | 秋霞成人午夜鲁丝一区二区三区 | 超碰在线观看av | 丁香激情综合 | 日韩欧美国产黄色 | 波多野结衣电影在线播放 | 亚洲乱码一区二区三区三上悠亚 | 不卡的av电影网站 | 国产高清精品一区二区三区 | 北条麻妃一区二区三区在线观看 | 91精品国产色综合久久久蜜香臀 | 亚洲欧洲在线视频 | 大乳巨せい乳ねんのしょうじょ | 国产精品日韩欧美大师 | 大桥未久步兵8部 | 王者后宫yin肉h文催眠 | 色丁香在线观看 | 瑟瑟视频在线 | 一级片免费 | 国产制服丝袜 | 亚洲一区二区中文在线 | 黄色网址av | 亚洲精品va | 国产一区二区三区综合 | 秋霞网鲁丝片 | 欧美精品色图 | 国产一区欧美二区 | 五月天中文字幕 | 国内一区二区视频 | 1区2区3区国产精品 午夜精品久久久久久久男人的天堂 | 亚洲天堂第一页 | 亚洲成人久久网 | 蜜桃av在线免费观看 | 亚洲精品国产精品乱码不99按摩 | 视频一区欧美 | 视频一区 中文字幕 | 高潮毛片又色又爽免费 | 草莓视频app在线观看 | 亚洲激情第一区 | 免费成人黄色 | 成人9禁啪啪无遮挡免费漫画 | 夜夜高潮夜夜爽夜夜爱爱 | 波多野结衣视频一区 | 比比资源av | 国产三级香港三韩国三级 | 一本色道久久综合亚洲精品小说 | 五月天堂网 | av免费观看久久 | 美女被男人猛操 | 欧美日韩性生活视频 | 蜜桃中文字幕 | 亚洲国产欧美一区二区三区久久 | 日韩av天天 | 国产一区二区在线影院 | 99久久婷婷国产精品综合 | 精品国产一二三区 | 国产黄色成人 | 成人资源在线播放 | 波多野结衣三区 | 日剧网 | 国产精品第四页 | 欧美性猛交xxxx久久久 | 777色婷婷视频二三区 | 欧美黑人双插 | 韩国av永久免费 | 日韩精品电影在线 | 成人久久综合 | 欧美日韩一区二区在线观看 | av中文字幕免费在线观看 | 亚洲成人精品av | 五月天天 | 美女张开腿让男人操 | 亚洲人影院 | 国产精品亚洲精品 | 青娱在线视频 | 色婷婷国产精品久久包臀 | 97在线观看视频 | 午夜美女视频 | av网址观看 | 男女爱爱动态图 | 男生和女生一起差差差视频 | 欧美激情一二区 | 日本嫩草视频 | 日韩一区中文 | 国产一级免费在线观看 | 国产欧美三级 | 午夜免费毛片 | 亚洲久久一区 | 中文色av | 性视频一区 | 最新av福利 | 日韩免费高清 | 精品国产依人香蕉在线精品 | a天堂视频 | 四虎永久 | 色婷婷色 | 欧美日韩三区 | 一区二区福利视频 | 国产人成一区二区三区影院 | 波霸ol色综合久久 | p影院永久免费p视频 | 国产精品久久久久久久久免费樱桃 | a天堂最新 | 日韩小网站 | 性网站在线播放 | 在线看国产一区 | 日韩美女中文字幕 | 美女少妇一区 | 91成人短视频在线观看 | 国产视频自拍偷拍 | 欧美不卡一区二区三区四区 | 综合网天天射 | 最近中文字幕免费mv视频7 | 亚洲免费婷婷 | 被老公舔高潮 | 色噜噜一区二区 | 色妞导航 | 美女久久久久久久久久久 | 欧美在线首页 | 黄色动漫在线观看 | 日韩久久在线 | 性感美女毛片 | 中文字幕在线视频日韩 | 国产91精品久久久久久久网曝门 | 日韩一区二区在线播放 | 国产一区二区日韩精品 | 欧美人妖69xxxxxhd3d | 97在线视频一区 | 国产香蕉久久 | 人妖无码| 一区二区三区精品在线 | 97在线视频免费 | av片在线观看免费 | 91丨九色丨蝌蚪富婆spa | 久久国产毛片 | 麻豆影视在线 | 男女视频免费网站 | 黄色av资源网站 | 成人在线视频网址 | 国模私拍xvideos | 日韩黄色网络 | 日韩 欧美 中文 | 国产情侣一区二区三区 | 日本一区二区三区四区在线观看 | 欧美日韩国产区 | 欧美一区三区四区 | 欧美黄色片在线观看 | 91精品久久久久久久99蜜桃 | 高清欧美性猛交xxxx黑人猛交 | 国产精品自在在线 | 国产精品水嫩水嫩 | 成人你懂得 | 国产精品麻豆欧美日韩ww | 国产香蕉尹人视频在线 | 婷婷色综合网 | 久久九九99 | 双乳被四个男人吃奶h文 | 国产欧美一区二区三区四区 | 丁香激情五月 | 少妇2做爰hd韩国电影 | 国产日韩在线视频 | 久久一区二 | 在线欧美日韩精品 | 欧美另类视频 | 亚洲香蕉久久 | 91在线播放国产 | 少妇一级淫片免费 | 亚洲视频在线观看网站 | 91网在线免费观看 | 国产理论片免费观看 | 91免费视频观看 | 91小视频在线 | 欧美日本韩国一区二区三区 | 色吧五月婷婷 | 大乳videos巨大吃奶bbw | 久草网免费在线观看 | 亚色视频在线播放 | 91视频观看视频 | 人妖无码 | 成人快手免费看片 | 国产欧美一区二区三区在线 | 亚洲传媒在线 | 日韩欧美一级 | 狠狠婷婷 | 高跟鞋调教贱奴 | 精品无码久久久久国产 | 美女又黄又爽 | 中文字幕第三页 | 日本护士在办公室里被躁 | 免费黄色网址大全 | 国产毛片精品视频 | 亚洲 欧美 激情 小说 另类 | 国产在线精品一区二区三区不卡 | 精品成人18 | 久久国产麻豆精品 | 积积对积积的桶30分软件 | 久久国产柳州莫菁门 | 日本精品区 | 亚洲四色影视在线观看 | 波多野结衣一区二区三区免费视频 | 综合久久综合久久 | 另类视频在线观看+1080p | 2025韩国大尺度电影 | 影音天堂| 欧美国产视频 | 拍真实国产伦偷精品 | 欧美丰满大乳 | 视频91在线 | 亚洲自拍电影 | 久久久久免费精品国产 | 在线综合+亚洲+欧美中文字幕 | 小柔的裸露日记h | 在线观看高清av | 天天影院av | zzijzzij亚洲成熟少妇 | 免费av电影网 | 成年人网站在线 | 奇米影视77777 | 精品久久久久久久中文字幕 | 成人高清在线观看 | 日韩中文字幕在线播放 | 精品成人在线观看 | 美女被男人桶出白浆喷水 | 中文字幕在线视频观看 | 青青草综合 | 欧美色图一区二区三区 | 色综合久久88 | 欧美成人免费观看 | 在线视频99 | 高潮白浆女日韩av免费看 | 成人激情av | 国产精品网友自拍 | 中文字幕一区二区三区电影 | 亚洲avav天堂av在线网毛片 | 亚洲精品网址 | 天天在线综合视频 | 视频在线观看电影完整版高清免费 | 91精品国产综合久久国产大片 | 免费亚洲网站 | 骚b少妇 | 国产日韩一区二区三区在线 | 日韩国产一区二区 | 国产欧美高清 | 顶臀精品视频www | 欧美一区二区三区白人 | 狠狠久久伊人 | 在线国产区 | 亚洲欧美日韩精品一区二区 | 精品免费av一区二区三区 | 色视频中文字幕 | 成人看片网站 | 日本人妖japanesexxx | 猫咪av成人永久网站在线观看 | 日韩一区二区在线免费观看 | av资源站在线观看 | 高清欧美性猛交xxxx黑人猛交 | 免费人成在线观看视频播放 | 欧美日韩久久 | 精品国产老女人乱码 | 国产麻豆乱码精品一区二区三区 | 日韩精品在线观看一区二区 | 国产精品久久网 | 国产黄色视 | 欧美日韩成人在线视频 | 欧美日韩激情在线 | 四川丰满少妇被弄到高潮 | 亚洲一区二区免费在线观看 | 亚洲а∨天堂久久精品喷水 | 精品亚洲一区二区三区 | 午夜网址你懂的 | 午夜激情免费视频 | 翘臀美女后进啪图 | 久久精品国产福利 | 久久久久国产精品www | av先锋影音资源 | 久久久久蜜桃 | 日韩啪啪网站 | 午夜视频在线观看一区二区 | 国产 一区二区 | 精品裸体舞一区二区三区 | 国模少妇一区二区三区 | 亚洲色图校园春色 | 免费看网站在线观看 | 黄色av免费在线播放 | 国户精品久久久久久久久久久不卡 | 成人黄色三级 | 免费国产一区 | av夜夜操 | 久久午夜精品 | 一级a爰片久久毛片 | 琪琪黄色 | 丁香电影网 | 日韩乱理 | 色呦呦一区二区三区 | 日韩裸模| 中文字幕在线免费播放 | 午夜精品久久一牛影视 | www.日韩欧美 | 日本精品视频在线播放 | 色视频欧美一区二区三区 | 丁香免费视频 | 高清一区二区三区 | 大色网小色网 | 激情小说图片视频 | 91高跟黑色丝袜呻吟在线观看 | 国产亚洲人成网站在线观看 | 91国产丝袜在线播放 | 91色多多 | 可以免费看的av | 成人午夜精品 | 亚洲一区 av | 国产成人自拍在线 | 丁香花五月天 | 国产天堂亚洲国产碰碰 | 日韩成人一区 | 爱啪网在线观看 | 精品国产乱码久久久久酒店 | 亚洲色图校园春色 | 亚洲天天操 | 国产美女久久久久 | 在线视频亚洲 | 海角社区id| 国产成人精品视频在线观看 | 久久艹在线视频 | 成人激情电影免费在线观看 | 国产精品久久久久7777按摩 | 免费不卡av | 日本视频免费在线播放 | 色网站在线看 | av日韩免费观看 | 欧美视频一二三 | 成人午夜短视频 | 欧美日本亚洲韩国国产 | 亚洲精品mp4| 人成在线视频 | 欧美精品久 | 国产超级av | 免费观看xxx在线观看下载 | 有码在线播放 | 亚洲一区资源 | 美女91精品 | 飘雪影视在线观看西瓜高清免费 | 村上里沙番号 | 俺也来俺也去俺也射 | 国产视频911| 五月花影院 | 国产一区激情 | 性福利视频导航 | 国产一区二区麻豆 | 国产精品区一区二区三 | 久久久国产精品视频 | 国产香蕉久久精品综合网 | 日本一区二区三区视频在线播放 | 91久久精品www人人做人人爽 | 主播视频最新网址 | 国产美女在线免费观看 | 强制高潮抽搐哭叫求饶h | 国产精选在线 | 美女无遮挡免费视频 | 欧美香蕉 | 日韩高清在线一区 | 欧美性在线播放 | 亚洲品质自拍视频网站 | 岛国av网站 | 亚洲激情图 | 女生裸身视频网站 | 美女黄色录像 | 欧美一级做a | 精品一区二区在线视频 | 少妇被按摩师摸高潮了 | 亚洲破处视频 | 国产亚洲成av人在线观看导航 | 一区二区三区四区国产精品 | 一本色道久久综合亚洲精品不 | 在线不卡视频一区二区 | 亚洲国产日本 | 欧美日韩一卡二卡三卡 | 色综合久| 妹子干综合 | 99热精品国产 | 久久国产精品一区二区 | 99精品网站 | 日韩国产精品久久 | 3p视频在线播放 | 酒井法子av | 黑人巨大精品欧美一区 | 日韩高清免费观看 | 奇米影视888狠狠狠777不卡 | 少妇闺蜜换浪荡h肉辣文 | 亚洲激情伦理 | 精品国产乱码久久久久久久久 | 欧美在线播放视频 | 国产区免费观看 | 天堂视频在线观看免费 | av地址在线 | 边摸边吃奶边做爽gif动态视频 | 欧美精品久久久久久久 | 亚洲激情国产 | 美女光屁屁露胸胸 | 成人免费网站在线 | 中文字幕 成人 | 韩日在线视频 | 18成人网 | 九色福利视频 | 动漫美女隐私无遮挡 | 日韩欧美国产中文字幕 | 色就是色 欧美 | 99视频精品 | 国产一区二区三区高清在线观看 | 99国产精品久久久久老师 | 中文字幕1区2区3区 国产成人亚洲综合 | 欧美黄色大片在线观看 | 色999在线观看 | 91国产中文字幕 | 麻豆亚洲一区 | 成人污污视频在线观看 | 免费色片视频 | a在线观看视频 | 久久久久久久久91 | 黄视频免费在线看 | 日韩伦理福利 | 久久精品视频在线 | 极品美女扒开粉嫩小泬 | 99久久精品免费看国产 | 色多多入口 | 国产午夜精品一区二区三区 | 亚洲激情p | av资源一区二区 | 九九久久99| 人人干人人插 | 精品无人区麻豆乱码久久久 | 免费在线观看的av | 91欧美激情另类亚洲 | 欧美在线免费观看视频 | 国产午夜精品久久久久久免费视 | 欧美成人video | 伦理电影国产精品 | 国产免费一级片 | 性猛交ⅹxxx乱大交孕妇 | 亚洲国产成人精品久久 | 午夜精品偷拍 | 女人的天堂av| 777中文字幕 | 国产精品1区 | 欧美 唯美 清纯 偷拍 | 农村乱人伦一区二区 | 五月天一区二区三区 | 日韩美女毛茸茸 | 亚洲女人天堂av | 影音先锋激情电影 | 亚洲第一福利网站 | 青青草超碰在线 | 极度另类 | 国产精品免费一区二区三区四区 | 亚洲乱码久久 | 岛国精品在线播放 | 亚洲1区在线 | 午夜精品av | 天堂av一区二区三区 | 欧美亚洲电影 | 国产精品人人做人人爽人人添 | 欧美另类调教 | 国产精品vip | 99欧美视频| 欧美卡一卡二 | 中国免费高清视频在线观看 | 黄色网av | 国产重口老太伦 | 91操人视频 | 青草视频在线观看免费 | 午夜激情在线观看 | 动漫同人高h啪啪爽文 | 综合久久2o19 | h视频免费在线观看 | 一区二区三区日韩精品 | 四虎新域名 | 顶级嫩模精品视频在线看 | 欧美大胆a视频 | 男生和女生操操 | 将军含着她粉红的乳尖 | 日本精品视频一区二区三区 | 扒开女人屁股进去 | 深夜福利亚洲 | 成人精品视频 | 亚洲区小说区图片区qvod | 国产视频丨精品|在线观看 琪琪电影一区二区 | 97在线观看免费高清 | 伊人激情五月 | 色婷婷一区二区三区四区 | 91精品国产91久久久久福利 | 欧美变态网站 | 欧美在线激情视频 | 怡红院老司机 | 女人18毛片aaa片水真多 | 欧美丝袜一区二区三区 | 色淫五月天 | 国产黄a三级三级看三级 | 天堂av中文字幕 | 综合色亚洲 | 涩视频在线 | 浮生影视在线观看免费 | 在线观看av网站 | 亚洲高清不卡在线 | 91av福利视频 | 欧洲视频在线免费观看 | 欧美三区 | 一个色综合导航 | 看av网址| 嫩草在线观看 | 综合网av | 久久精品视频播放 | 国产精品久久久 | 国产丝袜一区二区三区免费视频 | 亚洲视频日韩精品 | 免费观看日本视频 | 99国内精品久久久久久久软件 | 免费操视频 | 亚洲国产成人一区 | 瑟瑟网站在线观看 | 欧美性极品少妇精品网站 | 天堂资源中文在线 | 91精品国产综合久久久久久久 | 裸模宾馆私拍大尺度av | 黄色片在哪里看 | 毛片基地黄久久久久久天堂 | 亚洲人成电影网 | 免费看的黄色 | 美利坚合众国av | 国产综合色视频 | 国产在线1区 | 呻吟网站| 97色碰| 3d动漫精品啪啪一区二区竹菊 | 欧美日韩网站 | 97视频精品 | 欧美天堂在线 | 日日摸夜夜爽 | 国产欧美精品一区二区三区 | 欧美日韩另类视频 | 超碰在线免费 | 日韩久久久久 | 欧美另类极品videosbest最新版本 | 久久久亚洲网站 | 一区二区欧美激情 | 纯爱无遮挡h肉动漫在线播放 | 免费黄的网站 | 国产精品传媒视频 | 在线视频xxx | 亚洲欧美一区二区三区孕妇 | 欧洲国产伦久久久久久久 | 黄色床戏视频 | 五月天色网站 | 精品中文字幕一区 | 欧美色拍 | 日本人极品人妖高潮 | 想要xx视频| 久久日韩 | 国产欧美精品一区二区三区 | 国产成人精品亚洲777人妖 | 欧美成人猛片aaaaaaa | 红桃视频国产 | eeuss鲁片一区二区三区在线观看 | 国产日韩在线看 | av激情在线 | 欧美福利视频在线观看 | 国产精品一级片 | 亚洲一区二区三区在线 | 精品久久国产字幕高潮 | 国产精品久久久久国产a级 av网站在线免费 | 欧美日韩精品专区 | 日韩精品久久久久久久玫瑰园 | 久久在线91| 大胆人体一区二区 | 亚洲免费视频观看 | 青青草成人网 | 日韩国产精品91 | 粉嫩av亚洲一区二区图片 | 色精品| 激情网站在线观看 | 久久福利综合 | 欧美一区二区综合 | 黄色av中文字幕 | 最新色综合 | 在线成人免费观看 | 最新中文字幕一区二区三区 | 欧美日韩 中文字幕 | 国产一区二区av | 国产一区二区三区视频在线播放 | free性欧美hd精品4k | 欧美日韩国产综合草草 | 夜趣福利社 | 国产自视频 | 日韩精品一二三四区 | 亚洲色图第三页 | 亚洲 成人 一区 | 特色特黄视频 | 久久的色偷偷 | 亚洲欧美另类久久久精品 | 北条美里| 日本中文字幕高清 | 性高跟鞋xxxxhd国产电影 | 国产swag在线 | 亚洲精品综合在线 | 男女激情动态图片 | 中文字幕在线观看av | 中文字| 午夜色综合 | 理论毛片 | 色大师av一区二区三区 | 挪威的森林在线观看 | 激情文学综合丁香 | 红桃视频在线网站 | 一起来看流星雨第三部 | 91精品国产99 | 亚洲aaaaaa | 午夜精品一区二区在线观看 | 亚洲人一区二区 | aaa亚洲 | 国产精品久久毛片av大全日韩 | 一区二区三区在线高清 | 成人春色激情网 | 哥也色在线视频 | 成人国产精品一区 | 欧美色网在线 | 牛牛视频在线 | 国产性av | 色狠狠av一区二区三区 | 综合国产在线 | 精品h| 欧洲在线观看 | 成人久久精品视频 | 99久久亚洲精品 | 自拍偷拍 激情 | 亚洲高清在线观看 | 桃谷绘里香在线播放 | 日韩靠逼 | 美女全黄视频 | 国产对白羞辱绿帽vk | 成人网在线 | 综合色av | 国产小视频在线免费观看 | 男女精品视频 | 清纯唯美激情 | 国产在线不卡一区 | 亚洲欧洲高清 | av网站免费观看 | 国产91精品在线观看 | 老司机电影网你懂的视频 | 欧美精品在线第一页 | 麻豆传媒视频入口 | 极品魔鬼身材女神啪啪96 | 日本特黄特色aaa大片免费 | 西西444www大胆无视频 | 人人爱人人草 | 91.xxx.高清在线 | av在线一区二区 | 夜色快播 | 亚洲欧美久久久 | 国产精品免费人成网站 | 欧美一区二区久久久 | 8mav中文字幕 | 国产福利短视频 | 888久久久 | 国产在线视频不卡二 | av网站免费观看 | 一本色道久久综合亚洲精品不 | 黄色免费大片 | 国产1024在线观看 | 91视频免费在线观看 | 色噜噜狠狠一区二区三区狼国成人 | 成人h动漫精品一区二区器材 | 国产精品69av | www视频在线免费观看 | 香蕉久久精品日日躁夜夜躁 | 中文字幕国产精品一区二区 | 主播视频最新网址 | 国产一区二区三区 在线 | 黑色丝袜吻戏亲胸摸腿 | 黄色资源在线观看 | 男女激情视频网站 | 日韩av免费一区 | 亚洲精品视频一二三 | 九九人人 | 日韩高清在线 | 涩涩av在线 | 老婆的视频在线观看1 | а√天堂8资源在线官网 | 在线亚洲+欧美+日本专区 | 日日草天天草 | 免费视频www | 日韩图色 | 香蕉久久精品日日躁夜夜躁 | 激情成人综合 | 五十路妻 | 久久国产一区 | 永久555www成人免费 | 欧美成人免费在线视频 | 大尺度做爰无遮挡露器官 | 亚洲免费观看高清完整版在线 | 91精品国产综合久久香蕉麻豆 | 91免费视频观看 | 久久天堂av综合合色蜜桃网 | 久久99热这里只有精品 | 女女互慰吃奶互揉调教捆绑 | 高清视频在线播放 | 91视频色 | 九九热久久99| 91深夜福利视频 | 国产激情一区二区三区 | 国产一二三区在线 | 91视频91自| 成人午夜电影在线 | 欧美国产日韩精品 | 在线观看黄色网 | 韩国av网站在线 | 亚洲情侣在线 | av中字在线观看 | 久久久这里只有精品视频 | 91亚洲欧美| 男人操女人下面 | 国产精品一区免费在线观看 | 不卡一区视频 | 宅男视频在线播放 | 韩国三级中文字幕hd浴缸戏 | 婷婷福利视频导航 | 欧美成人h版在线观看 | 中文字幕在线免费 | 伦理影视网 | 久精品免费视频 | 国内精品在线一区 | 成人国产精品免费网站 | 国产黄色一区 | 高跟鞋和丝袜猛烈xxxxxx | 爱爱视频在线播放 | 成人动漫精品一区二区 | 亚洲精品在线一区二区 | 黄色av大全 | 黄色精品一区二区 | 天天看夜夜 | 美妇湿透娇羞紧窄迎合 | 欧美成人一区二区三区 | 欧美成人资源 | 夜趣福利网址导航 | gogo人体做爰大胆裸体网站 | 亚洲免费看黄 | 91搞黄视频 | 国产精品一精品二精品三 | 久久精品中文字幕一区二区三区 | 欧美精品手机在线 | 激情久久婷婷 | 成人动漫在线一区 | 国产.高清,露脸,对白 | 一个人在线观看www 国产在线观 | 欧美精品一级二级 | 一区二区三区免费看视频 | 欧美涩涩视频 | 久久精品天堂 | 日韩欧美亚洲日产国产 | 午夜网站在线 | av人体| 老司机黄色网 | 欧美日三级 | 国产在线不卡一区 | 超碰在线影院 | 第一章激情艳妇 | 91影院在线免费观看 | 欧美激情六月 | 欧洲天堂在线观看 | 久久久久久一区二区三区 | 成人动漫av在线 | 久久精品99久久久久久久久 | 国产成人av一区 | 91国内在线视频 | 日韩一区二区精品视频 | 日韩成人激情 | 巨乳女教师の诱惑 | 欧美一卡二卡在线 | 成人美女视频在线观看18 | 香蕉大人在线视频 | 舌头伸进去的我好爽 | 成人免费高清视频 | 成年人免费网站在线观看 | 一区精品在线 | 红桃视频成人免费网站 | 中文字幕最新网址 | 麻豆蜜桃91| 成人黄色激情电影 | 久久久 精品| 成人av免费在线看 | 91www在线观看| 无套爆插 | av资源久久 | 在线黄色av网址 | 欧美重口另类 | 中文字幕一区在线观看 | 久草青娱乐 | 欧美卡一卡二 | 亚洲成人精品久久久 | 欧美视频精品一区 | 少妇被按摩师摸高潮了 | 男人天堂国产 | 蜜桃av最新网址 | 色综合夜夜 | 情欲综合| 羞辱极度绿帽vk | 欧美视频二区 | 麻豆网站在线免费观看 | 被爆操喷水了啊 高h | 国产一区二区三区 在线 | 色伊人久久| 免费亚洲视频 | 国产视频精品自拍 | 日韩免费观看高清完整版在线观看 | 黄页网站免费观看 | 国产精品1区2区3区 日本一级黄 | 欧美精品videos性欧美 | 黄页网站在线 | av电影在线观看网站 | 久久精品电影一区二区 | 视频在线观看一区二区三区 | 欧美一区网站 | 国产福利网 | 欧美一区91| 亚洲精品高清国产一线久久, | 波多野结衣导航 | 18视频在线观看网站 | a级激情片| 麻豆 91 在线| 成人黄色在线免费 | 91精品国产综合久久香蕉922 | 激情免费视频 | 色视频在线观看免费 | 亚洲成人黄色网址 | 免费裸体网站 | 久久精品国产一区二区三区 | 国产亚洲欧美日韩一区二区 | 国产精品普通话 | 亚欧黄色av | 黄网站免费视频 | 99精品视频一区 | 日韩精品麻豆 | 精品国产黄a∨片高清在线 成年人免费视频网 | 亚洲欧美国产精品久久久久久久 | 美女搡bbb又爽又猛又黄www | 午夜小影院a| 午夜激情在线看 | 欧美性猛交xxxxx水多 | 亚洲国产精品久久久久 | 国产精品成人一区二区三区夜夜夜 | 美女又黄 | 美女扒开腿男人爽桶 | 蜜桃91精品入口 | 国产精品国产自产拍高清av水多 | 自由 日本语 热 亚洲人 | 国产精品二区一区二区aⅴ污介绍 | av美女在线观看 | 久久99精品久久久久久国产越南 | 欧美性xxxx极品hd满灌 | 美女娇喘| 中文字幕人成乱码在线观看 | 日本极品少妇视频 | 欧美最猛性xxxxx免费 | 亚洲乱亚洲乱妇无码 | 操操操日日日 | 日韩av影院在线观看 | 深夜视频一区二区 | 久草最新地址 | 五月天开心网 | 法国精品性hd | 色一情一乱一乱一91av | 亚洲激情偷拍 | 国产伦理在线 | 扒开腿揉捏花蒂h | 影音先锋第一页 | 欧美日韩午夜 | 最新中文字幕av专区 | 日韩av电影在线播放 | 国产伦精品一区二区 | 国产精品99久久久久久久久久久久 | 亚洲福利在线观看 | 亚洲一区二区三区视频播放 | 少妇视频在线 | eeuss鲁片一区二区三区在线看 | 色天使av | 欧美日本韩国一区二区三区 | 色婷婷综合久久久久 | 婷婷色国产偷v国产偷v小说 | 国产主播第一页 | av中文资源在线观看 | 国产精品国产三级国产aⅴ9色 | 色人天堂| 在线视频资源站 | 91福利视频在线观看 | 136fldh导航福利微拍 | 免费久久精品视频 | 国产高清一区视频 | 国产精品高潮呻吟久久av野狼 | 欧美福利视频在线观看 | 欧美 日韩 另类 字幕中文 | 成年人黄色在线观看 | 午夜h| 国产小视频网站 | 国产欧美日本一区二区三区 | 久久久久久久久久电影 | 欧美午夜免费 | 91在线观看免费高清完整版在线观看 | 国产精品一区二区三区不卡 | 精品国产制服丝袜高跟 | 欧美成人精品在线视频 | 金瓶狂野欧美性猛交xxxx | 99精品视频一区二区 | 黄色影院在线播放 | 欧美日韩国产免费观看 | 免费黄色网址大全 | 精彩视频一区二区三区 | 一本免费视频 | 疯狂揉花蒂控制高潮h | 裸体免费网站 | 国产午夜精品一区二区三区欧美 | 神马久久影院 | 六月婷婷网 | 曰批又黄又爽免费视频 | 日本作爱视频 | 日本高清免费中文字幕 | 成人国产精品免费观看视频 | 国产亚洲精品自在久久 | 欧美精品免费观看二区 | 岛国一区二区 | 粉嫩av在线播放 | 特级毛片www | 九九热视频在线 | 亚洲美女在线看 | 青青草免费观看视频 | 一区二区三区四区不卡 | 一区二区成人精品 | 一区二区三区免费看视频 | 国产精品视频播放 | 日本不卡一区二区三区在线观看 | 美女一二三区 | 特级毛片在线 | 蜜桃91丨九色丨蝌蚪91桃色 | 老少配性506070xxxx | 91精品欧美久久久久久动漫 | 99日韩精品 | 亚洲区视频 | 成人久久久久久久 | 欧美日韩国产一二三 | 国产日韩欧美综合 | 色偷偷超碰av人人做人人爽 | 亚洲三级观看 | 日韩精品dvd| 午夜激情在线播放 | av福利在线导航 | 五十路熟母 | 一区二区三区免费在线观看 | 色大师av一区二区三区 | 成人免费在线播放视频 | 草莓视频免费观看 | 国产亚洲欧美视频 | 亚洲成人激情视频 | 91av资源在线 | 伊人国产在线 | av福利资源 | 国产欧美精品在线观看 | 亚洲精品综合精品自拍 | 狠狠天天| 天天在线操 | 欧洲综合色 | 国产传媒视频在线观看 | 福利500精品导航大全 | 欧美一级大片在线免费观看 | 国产1区2区3区在线 av电影免费播放网站 | 色偷偷噜噜噜亚洲男人的天堂 | 2021狠狠干 | 免费激情av | 国产第一页在线视频 | 国产在线观看 | 色网天堂 | 亚洲午夜av久久乱码 | 久久精品视频在线免费观看 | 亚洲大胆人体视频 | 久久久精品久久久久 | av在线免费播 | 在线天堂亚洲 | 欧美日韩免费 | 亚洲三级在线观看 | 国语对白精品一区二区 | 日韩精品欧美激情 | 99riav国产精品 | 国产精品亚洲а∨天堂免在线 | 韩剧19禁啪啪无遮挡大尺 | 91精品国产91久久 | 欧美午夜片在线观看 | a免费网站 | 一级特黄aa| 找av导航入口 | 亚洲精品乱码久久久久久蜜桃91 | 日本一区二区视频在线观看 | 精品国产乱码久久久久久108 | 黄色国产视频 | 不用播放器的av | 在线播放av网址 | 欧美日韩亚洲国产精品 | 欧美亚洲视频一区二区 | 国产精品99久久久久久久vr | 一区二区三区不卡视频在线观看 | 日av免费| 精品国产第一页 | a在线免费观看 | 日韩精品在线免费播放 | 亚洲不卡视频 | 朝桐光影音先锋 | 看黄免费网站 | 日韩精品在线网站 | 欧美日韩另类在线 | 宅男午夜在线 | 国产成人一区二区三区电影 | 国产亚洲精品aa | 一二三区视频在线 | 天堂资源中文在线 | 欧美视频在线观看 | 成人在线视频免费 | 日韩成人av一区 | 国产丝袜在线 | 成人在线专区 | 婷婷操操| 国产一区二区三区网站 | 精品国产乱码久久久久久婷婷 | 色老头视频网 | 黑人操日本女优 | 国产精品高清免费在线观看 | 亚洲国产v | 激情av网站 | 国产激情综合五月久久 | 精品国产乱码久久久久久蜜臀 | 国产裸体网站 | 超碰97人人爱 | 欧美9999| 极品美女扒开粉嫩小泬 | 精品人伦一区二区三区蜜桃免费 | 少妇裸体淫交视频免费看高清 | 免费av在线| 91精品国产综合久久久久 | 九九综合久久 | 91毛片网站 | 婷婷国产视频 | 都市激情 亚洲 | 日本精品黄色 | 在线观看自拍视频 | 国产精品三级久久久久久电影 | 亚洲色图 清纯唯美 | 视频一区二区三区在线观看 | 久久久久久麻豆 | 中文字幕视频在线播放 | 警花zjy吕总大尺度视频 | 四虎精品永久免费 | 国产精彩视频在线播放 | 涩涩涩在线观看 | 国产a级片| 亚洲激情av在线 | 欧美理论影院 | 欧美色欧美亚洲另类二区 | 精品国产乱码久久久久久久久 | 色综合人人 | 青青草小视频 | 中文字幕小视频 | 永久黄网站色视频免费 | 在线观看免费毛片 | 日韩国产一区二区 | 免费人成精品欧美精品 | 亚洲男人资源 | 国产亲近乱来精品视频 | 亚洲天堂久久久久久久 | 国产精品日日做人人爱 | 今天成全在线观看免费播放动漫 | 深夜视频在线观看 | 日韩精品在线免费观看视频 | 激情视频网址 | 亚洲一区二三 | 就是色综合| 成人免费视频观看视频 | 天堂俺去俺来也www 国产98色在线 | 亚洲青涩 | 夜夜嗨av一区二区三区网页 | 亚洲啪啪av | 国产传媒一区二区三区 | 黑丝一区二区三区 | 国产免费观看av | 亚洲国产视频网站 | 午夜av在线免费观看 | 亚洲第一在线 | 99r精品视频| 久久久久久美女 | 999精品一区二区 | 国产精品久久久久影院色老大 | 国产精品人成在线观看免费 | 欧美自拍偷拍 | 97av视频| 久久精品亚洲精品国产欧美 | 91蜜桃视频在线 | 成人黄色在线 | 欧美专区在线播放 | 国产aaa级片| 日韩精品电影 | 欧美中文字幕精品 | 日韩在线 中文字幕 | 在线免费看黄 | 亚洲不卡一区二区三区 | www.成人在线观看 | 国产夫妻精品视频 | 亚洲免费观看高清在线观看 | 91免费版黄色 | 日韩激情一区二区 | 91桃色视频 | 亚洲自拍网站 | 91久久久久久久久久 | 日韩av中文字幕在线 | 亚洲欧洲激情在线 | 日韩精品在线网站 | 亚洲精选91 | 巨乳美女在线播放 | 操日本老妇 | 精品亚洲一区二区三区四区五区 | 精品国产一区二区三区四区在线观看 | 完美搭档在线观看 | 国产一二三四在线 | 韩国电影大尺度在线观看 | 仙踪林久久久久久久999 | 国产激情在线观看 | 奇米精品一区二区三区在线观看一 | 黄漫网址 | 日本一区二区不卡视频 | 久久精品亚洲一区二区 | 男女草逼视频 | 外国一级黄色片 | 大伊人网 | 男人天堂色偷偷 | 韩国久久久久 | 国产原创精品 | 久久久视频免费观看 | 肉感丰满的av演员 | 五月导航 | 久久国产综合精品 | 中文字幕在线观看网站 | 国产主播在线播放 | 激情五月,激情综合网 | 欧美一区二区三区视频免费 | 国产精品97 | 久久精品久久精品 | 中文在线视频免费观看 | 欧美一区亚洲二区 | 樱桃国产成人精品视频 | 在线精品日韩 | 久久在线电影 | 欧美美女在线 | 久久另类ts人妖一区二区 | 你懂的在线观看视频网站 | 亚洲女av | 国产24小时在线播放 | 一线天 粉嫩 在线播放 | 国产又爽又黄免费动画 | 91日本韩国 | a亚洲天堂 | 免费又黄又爽又猛大片午夜 | 91色乱码一区二区三区 | 成人福利资源 | 久国久产久精永久网页 | 国产69精品久久久久777 | 免费成人在线观看视频 | 91大片在线观看 | 国产日韩欧美日韩 | 国产精品女主播av | 芒果视频在线观看免费 | 免费成人三级 | 激情国产视频 | 亚洲19p | 免费福利视频网站 | 国产日韩一区二区三区 | 亚洲风情亚aⅴ在线发布 | 亚洲一区二区三区四区在线观看 | 亚洲最大福利网站 | 色就是色亚洲色图 | 超碰97人人人人人蜜桃 | av成人国产| 成人精品电影 | av成人在线网 | 国产精一精二 | 国产精品字幕 | aaa亚洲 | 亚洲精久久 | 欧美xxxx黑人又粗又长密月 | 久久高清一区 | 欧美日韩国 | 91嫩草国产在线观看 | 成人性视频免费网站 | 91麻豆产精品久久久久久 | 国产精品美女久久久久久免费 | 日本理伦片午夜理伦片 | 欧美日韩一级片在线观看 | 亚洲国产精品久久久久久女王 | 丝袜美腿亚洲一区二区图片 | av免费网站| 国产东北露脸精品视频 | 亚洲国产视频a | 麻豆视频网站入口 | 在线看色视频 | av导航网站 | 国产乱码精品一区二区三区中文 | 成人精品一二区 | k频道在线观看视频 | 四虎影视精品 | 欧美少妇xxxx | ww视频在线观看 | 4438xx亚洲最大五色丁香一 | 国产午夜精选 | 韩国成人理伦片免费播放 | 亚洲国产成人91精品 | 色综合色 | 国产福利小视频 | 在线观看成人免费视频 | 免费黄网入口 | 一区二区欧美在线观看 | 玖玖玖色| 自由成熟xxxx色视频 | 91精品综合 | 国产福利一区在线 | 欧美亚裔女优 | 不卡的av在线 | 又欲又污又肉又黄短文 | 福利视频在线免费观看 | 午夜激情小视频 | aⅴ色国产 欧美 | 欧美青青草 | 夜晚福利| 国产在线资源站 | 成人免费高清在线 | 免费久久精品视频 | 爆操白丝美女 | 亚洲涩涩网站 | av在线免费观看的网站 | 日韩一区二区三区在线免费观看 | 精品美女在线 | 毛片基地一级大毛片 | 男女啪啪av | av片网址| 国产极品久久久久久久久波多结野 | 日韩中文字幕视频 | 成人激情视频在线 | 成年视频在线 | 亚洲精品在线一区二区 | 久久精品久久久精品美女 | 女生下面流水视频 | 成人av久久 | 国产成人av影院 | 一区二区av | 伊伊综合网| 欧美a一区 | 国产精品系列在线播放 | 在线视频第一页 | 神马久久影院 | 在线观看免费黄视频 | 亚洲精品小视频 | 未满18岁禁止进入的网站 | 最近中文字幕在线视频1 | 在线视频免费观看你懂的 | 在线免费观看黄色av | 中文 国产 亚洲 喷潮 | 最好看十大无码av | 午夜高潮免费视频 | 国产成人一级电影 | 黄色片怎么看 | 光着双乳三级走秀 | 红桃视频成人在线 | 精品在线小视频 | 中文字幕一区二区三区在线播放 | 亚洲视频色 | 久久久在线 | www.国产一区 | 亚洲qvod图片区电影 | 国产精品一区二区3区 | 亚洲色图第一区 | 91丝袜美腿高跟国产极品老师 | 日本一区二区久久 | 东京干手机福利视频 | 欧美一区三区二区在线观看 | 亚洲激情精品 | 精品久久国产一区 | 麻豆精品久久久 | 成年人在线观看视频网站 | 国产又粗又黄 | 国产日韩欧美在线看 | 亚洲国产精华液网站w | 亚洲成人va | 久久久久久久 | 美女的让男人桶爽动漫 | 激情国产一区 | 午夜激情毛片 | 免费黄网站在线播放 | 999re7热在线精品视频 | 天天色成人 | 国产色悠悠 | 成人在线观看18 | 国产一区导航 | 亚洲精品一品区二品区三品区 | 成人午夜资源 | 69电视影片免费观看 | 午夜一区二区三区在线观看 | av界最极品的长腿美腿 | 粉嫩一区二区三区性色av | 麻酥酥在线播放 | 国产人成免费视频 | 亚洲黑丝在线 | 国产精品久久久久久久久免费高清 | av在线电影网 | 黄色资源在线 | 日本在线观看高清完整版 | 欧美丰满老妇熟乱xxxxyyy | 亚洲三级免费电影 | 国产精品欧美极品 | 九九久久成人 | 成人av网址在线观看 | 欧美日韩一区二区三 | 上原亚衣av一区二区三区 | 国产专区在线播放 | 一区二区三区免费看 | 青青操在线观看 | 亚洲婷婷丁香 | 黄色网址在线看 | 日本亚洲网站 | 在线观看日韩 | 动漫大乳美女 | 男生裸体视频 | 大桥未久恸哭の女教师 | 欧美人与性动交ccoo | 男生和女生差差视频 | 在线观看 日韩 | 自拍偷拍亚洲欧美 | 麻豆免费看片 | 国户精品久久久久久久久久久不卡 | 亚洲欧美怡红院 | 国产日批 | 国产乱国产乱300精品 | h片在线观看免费 | 黄色小网站免费观看 | 91不卡视频 | 99超碰人人| 亚洲第一页在线 | 偷拍各种美女wc嘘嘘视频 | 国产精自产拍久久久久久蜜 | 好吊操这里只有精品 | 三级三级久久三级久久18 | 天堂网在线免费 | 国产视频在线一区二区 | 国产网站免费观看 | 久久国产美女 | 91丨九色丨黑人外教 | 久色伊人 | 国产欧美视频一区二区三区 | 老地方在线观看免费动漫 | 国产资源在线免费观看 | 亚洲变态欧美另类捆绑 | 精东传媒在线观看 | 色综合视频在线观看 | 麻豆影音| 欧美激情久久久久 | 欧美,日韩,国产精品免费观看 | 国产一区一区 | 波多野结衣精品 | 99热亚洲| 国语对白精彩对话 | 美腿丝袜亚洲色图 | 中国少妇乱子伦视频播放 | yy6080理aa级伦大片一级 | 这里只有精品视频在线观看 | 高清国产一区二区三区 | 久久亚州av| 丁香色综合 | 超碰97在线资源 | 一区二区三区四区精品 | 成人网址推荐 | 中文字幕在线观看网站 | 国产高清免费观看 | 久久大香伊蕉在人线观看热2 | 国产伦精一区二区三区 | 激情导航| 男人天堂午夜影院 | 久久婷婷色 | 美女隐私黄www网站动漫 | 精品一区二区三区在线观看 | 色涩视频在线观看 | 草莓视频在线观看视频 | 国产女主播一区二区 | 91免费视频大全 | 亚州av影院| 久久成人18免费网站 | 美女被c到爽 | 99视频国产精品 | a视频在线免费观看 | 欧美性一级 | 一区二区三区蜜桃 | 91精品国产91久久久久青草 | 女尊高h男高潮呻吟 | 亚洲三级观看 | 婷婷六月天激情 | 麻豆传媒观看 | 少妇的被肉日常np | 最新中文字幕亚洲 | 亚洲精品久久久久久久久久久 | 麻豆视频二区 | 国产高清在线不卡 | 国产精品 欧美精品 | 香港日本韩国三级网站 | 色悠悠国产精品 | 天天爱夜夜 | 亚洲一区二区三区乱码aⅴ蜜桃女 | 玖玖在线视频 | 久久精品一区二区三区av | 成人av免费在线看 | 亚洲国产一二三 | 亚洲人成在线观看 | 草莓视频成人在线 | 欧美一卡二卡三卡四卡 | 日日夜夜拍| 美女视频二区 | 吻胸摸全身视频 | 精品久久久久国产 | 91天堂在线观看 | 日本在线精品视频 | 国产一区二区久久久 | 亚洲欧洲视频在线 | 亚洲一二三四在线 | 七七88色 | 又欲又污又肉又黄短文 | 免费看麻豆 | free性丰满69性欧美天美 | 国产亚洲精品久久久久久牛牛 | 亚洲视频一区二区三区 | 国产v在线观看 | 成人激情av网| av大全在线观看 | 粉嫩一区二区三区性色av | 77视频网页版 | 国产又黄又粗又猛又爽 | 成人动漫视频在线观看完整版动画 | 动漫美女的胸被狂揉扒内衣 | 91久久人澡人人添人人爽欧美 | 青青草国产 | 亚洲www色 | 冲田杏梨一区二区三区 | 伊人影院综合在线 | 日本女人一区二区三区 | 中文字幕亚洲精品在线观看 | 被室友玩屁股(h)男男 | 97欧美精品一区二区三区 | h片在线观看免费 | 国产又黄又 | 亚洲日本中文 | 精品视频久久久 | 久久综合鬼色 | 色人阁在线 | 狠狠操视频在线观看 | 黄色影音| 超碰日日夜夜 | 日韩免费视频一区 | 91色花堂 | 欧洲激情一区二区 | 国产免费av在线 | 久久久久久国产精品三级玉女聊斋 | 亚洲a一区二区三区 | 亚洲精品视频播放 | eeuss国产一区二区三区四区 | 极度诱惑香港电影完整 | xxx亚洲日本 | 亚洲欧美日本韩国 | 国产高清无密码一区二区三区 | 日韩天堂网 | 99视频有精品 | av动漫一区二区 | free性护士vidos猛交 | 欧美成年人视频网站 | 欧美在线观看一区二区 | 最新91在线 | 国产精品9999久久久久仙踪林 | 大战肉丝少妇在线观看 | av免费电影网站 | 国产疯狂做受xxxx高潮 | 日韩精品一区二区三区免费视频 | 国产乱码精品一区二区三区五月婷 | 日日操夜夜撸 | 久9999| 丝袜一区二区三区 | av色综合| 亚洲欧美日韩在线一区 | 国产麻豆9l精品三级站 | xvideos成人免费视频 | 色播放| 亚洲福利av在线 | 亚洲精选在线观看 | 国产黄色精品网站 | 成人午夜激情在线 | free性中国hd国语露脸 | 青青青在线视频观看 | 在线成人亚洲 | 欧美区一区二 | 91麻豆福利 | 91久久国产综合久久 | 日韩一区二区在线看 | 人体裸体bbb欣赏 | 91久久久久久久久 | 亚洲精品视频在线观看网站 | 国产精品永久免费观看 | 成人免费在线播放视频 | 日本一二三区在线视频 | 国产中文第一页 | 色婷婷免费视频 | 国产网站视频 | 光棍影院手机版在线观看免费 | 久久久久久久av麻豆果冻 | 久久蜜桃av一区二区天堂 | 神马电影久久 | 91蜜桃婷婷狠狠久久综合9色 | 在线中文字幕一区二区 | 理论毛片| 99久久综合精品 | 亚洲免费观看高清在线观看 | 涩涩网站入口 | 亚洲午夜精品久久久久久浪潮 | 日韩电影在线观看电影 | 国产成人精品免费视频 | av色久| av日韩在线播放 | 成人在线免费观看网站 | 欧美日韩在线免费 | 色花堂在线 | 脱美女衣服亲摸揉视频 | 欧美h版电影在线观看 | 天狂传说之巴啦啦小魔仙 | 成年人视频大全 | 亚洲性电影 | 久久国产精品久久精品国产 | 国产精品一级在线 | 亚洲在线播放 | av基地在线观看 | 亚洲欧美日韩天堂 | 婷婷久久av | 欧美日本在线播放 | 欧美精品手机在线 | av资源免费 | 久久精品综合网 | 国产欧美日韩精品一区 | 爱啪网在线观看 | 国产视频不卡一区 | 国产亚洲精品v | 欧美成人猛片aaaaaaa | 999国产精品 | 精品亚洲一区二区三区四区五区高 | av骚老师 | 亚洲精品中文字幕av | 久久久久久一区二区 | 亚洲性av | 亚洲电影中文字幕在线观看 | 欧美高清在线播放 | 中国少妇初尝黑人巨大 | 国产日韩欧美 | 欧美18一20男同69gay | 七仙女欲春2一级裸体片 | 美女一线天 | a在线观看视频 | 91极品美女 | 尤物视频一区二区 | 娇妻第一次尝试交换的后果 | 黄色小说在线观看视频 | 国产a一区二区 | 美女在线一区 | 日韩激情视频在线 | 欧美 日韩 在线播放 | 小yoyo萝li交精品导航 | 视频在线99 | 日本在线免费播放视频 | 亚洲欧美一区二区三区国产精品 | 亚洲va久久久噜噜噜久久天堂 | 亚洲在线播放 | 国产精品xxxav免费视频 | 免费观看av毛片 | 国产欧美日韩高清 | 日本一区二区成人 | 欧美日韩国产第一页 | 久久久www | 一本色道久久综合精品竹菊 | 中文字幕在线观看日本 | 日韩美女免费观看 | 国产精品一区免费在线观看 | 麻豆精品在线观看 | 在线观看黄av | 米奇色 | 国产原创视频在线观看 | 久热精品视频在线免费观看 | 女人性做爰100部免费 | 精品久久久久久久久久岛国gif | 亚洲天堂免费看 | 免费黄色小网站 | 久久在线观看免费 | 欧洲视频一区二区三区 | 色婷婷香蕉在线一区二区 | 91成人黄| 成人欧美一区二区三区黑人免费 | 老公吃小头头视频免费观看 | 一区二区在线观看手机影院 | 亚洲xxx视频| 精彩视频在线看 | 孕妇被各种姿势c到高潮视频 | 五月激情综合色 | 香港黄色网址 | 欧美在线一区二区 | 丰满岳乱妇一区二区三区 | 国产精品一区二区久久 | 久久97精品久久久久久久不卡 | 丁香激情婷婷 | 久久亚洲精品国产亚洲老地址 | 亚洲一二三区不卡 | 97超碰人人模人人人爽人人爱 | 欧洲精品久久久久毛片完整版 | 日韩在线观看网站 | 草草视频在线观看 | 国产成人视屏 | 国产精品成人一区二区三区夜夜夜 | 在线观看av网 | 白袜av | 俄罗斯一级电影 | 99re热这里只有精品视频 | 青草久久伊人 | 国产大片久久 | 国产亚洲欧美日韩俺去了 | 在线观看波多 | 亚洲 欧美 综合 | 欧美日韩国产综合一区二区 | 国产乱码精品一区二区三区五月婷 | 色呦呦在线看 | 欧美 国产精品 | 国产成人福利视频 | 天堂成人在线 | 日美av在线 | 三级黄色av网站 | 黄页视频在线播放 | 毛片视频大全 | 国产欧美自拍一区 | 麻豆成人在线播放 | 欧美黄页网站 | 夜间福利片| 黄网站在线播放 | 日韩欧美精品一区 | 日本xxx护士18一19高潮 | 欧美日韩伦理片 | 精品免费av一区二区三区 | 欧美日韩一区二区高清 | 住在隔壁的她动漫免费观看全集下载 | 午夜老司机av | 日本成人在线一区 | 欧美日韩精品二区 | 美女又爽又黄视频毛茸茸 | 最新地址av | 主播在线视频 | 国产三级视频 | 国产日韩精品久久 | 羞羞网站在线观看 | 一个大一个区 | 免费在线观看黄色av | 又黄又色又爽的视频 | 污污网站入口 | 毛笔失禁玩弄play高潮双男主 | 亚洲成人激情在线观看 | 在线视频亚洲欧美 | 美女网站一区二区 | 成人av综合在线 | 亚洲久久一区二区 | 国产在线激情视频 | 五号特工组之偷天换月 | 日韩精品免费视频 | 国产视频一区二区在线 | 老司机午夜精品视频在线观看 | 国产成人福利片 | 丝袜理论片在线观看 | 欧美厕所偷拍视频 | 91青娱乐在线视频 | 不卡三区| 中文字幕视频三区 | 奇米在线777 | 国产伦理久久久 | 国产高清免费在线观看 | a久久久久久 | 三区在线观看 | 韩国美女福利视频 | 伊人一二三 | 婷婷狠狠爱 | 色女人网| 黄色无遮挡网站 | avhd101高清谜片 | 老司机精品导航 | 成人夜晚看av | 亚洲自拍电影 | 国产精品一区二区三区在线 | 亚洲影色 | 国产精品视频一区二区三区经 | 日韩在线免费av | 美女很黄很黄是免费的 | 伊人色影院 | 日韩区一区二 | 日韩理论片在线观看 | 中文字 | 少妇一区二区视频 | 国产精品毛片久久久 | 国产精品视频观看 | 国产精品裸体一区二区三区 | 超大gaygays免费观看 | 找老女人网站 | 免费中文字幕日韩欧美 | 精品欧美黑人一区二区三区 | 美女大胸视频网站 | 四虎永久在线精品免费一区二区 | 欧美 视频 一区 | 国产成人av网站 | av线上免费看 | 日韩精品分区 | 欧美日韩国| 日韩区在线 | 国产精品96久久久久久又黄又硬 | 黄色大全在线观看 | 色综合电影网 | 成人av免费看 | 欧美另类调教 | 国产精品xxxx | 欧美激情一区二区三区四区 | 色偷偷男人天堂 | 欧美一区二区日韩 | 国产高清免费在线播放 | 国产精品久久久久久久美男 | 成人桃色视频 | 网站黄色在线观看 | 91精品国产综合久久久久久 | 欧美特黄一区 | 亚洲欧美成人网 | 欧美日韩一区综合 | 99视频国产精品 | 欧美大胆少妇 | 日韩中文字幕视频 | 久久这里都是精品 | 99re这里只有| 成人深夜电影 | 狠狠综合网 | 精品一区二区三区久久 | 人人做人人澡人人爽欧美 | 免费一级suv好看的国产网站 | 亚洲精品伦理在线 | 国产精品果冻传媒潘 | 91精品国产高清一区二区三区 | 亚洲香蕉久久 | av成人在线播放 | 国产精品久久久久久久天堂第1集 | 一区二区欧美亚洲 | 黄色成人免费看 | 日本一区视频在线观看 | 黄色网免费在线观看 | 久色资源网 | 午夜寂寞少妇aaa片毛片 | 国产精品你懂得 | 亚洲欧洲日韩精品 | 杨幂一区二区三区免费看视频 | 欧美黑人性生活视频 | 欧美国产精品一区二区 | 久久中文字幕在线视频 | 欧美精品亚洲精品 | 大尺度床戏视频 | 国产精品久久网站 | 欧美精品久久久久 | 久久婷婷一区二区三区 | 国产精品无码专区在线观看 | 国产女主播在线播放 | 综合色狠狠 | 丁香激情视频 | av黄色免费观看 | 欧美一级黑人aaaaaaa做受 | 一区二区av | 国产精品乱码一区二区三区 | 日韩在线精品一区 | 宅男深夜视频 | 一本色道久久综合狠狠躁的推荐 | 久久这里只有精品6 | 中文视频一区 | 国产一区二区视频在线免费观看 | 亲子乱子伦xxxx | 日韩欧美精品在线观看 | 91高跟黑色丝袜呻吟在线观看 | 日韩一二三区 | 久久国产精品影视 | 亚洲欧洲中文日韩久久av乱码 | 欧美在线亚洲一区 | 精品国产乱码久久久久久影片 | 亚洲日本中文 | 色黄视频免费观看 | 久久国产精品-国产精品 | 国产精品久久二区 | 午夜精彩视频在线观看 | 国产一区二区高清不卡 | 蜜臀av一区二区三区 | 水野优香中文字幕 | 成人av在线播放网站 | 女生扒开尿口 | 男生插女生的网站 | 99免费视频| 中文字幕视频在线 | 中文字幕永久在线观看 | 国产在线观看一区 | 丝袜福利在线 | 亚洲性导航| 国产成人久久 | 黄页网站大全在线观看 | 亚洲 一区 二区 在线 | 亚洲午夜av | avhd老司机 | 丁香社区五月 | 久久精品播放 | 麻豆资源在线 | 久色在线三级三级三级免费看 | p影院永久免费p视频 | 国产视频自拍偷拍 | 久久av日韩 | 男生插女生的视频 | av黄色| 亚洲男人网站 | 思思99精品视频在线观看 | 俄罗斯美女野外性行为 | 亚洲免费人成在线视频观看 | 国产在线视频一区 | 亚洲香蕉av在线一区二区三区 | 国产日韩欧美 | 午夜精品久久久久久99热 | 91麻豆精品久久久久蜜臀 | 1级黄色片| 中国丰满老太hd | 一级片久久| 黄色成人av| 国产精品久久久久久中文字 | 亚洲激情区 | 欧美一区二区三区白人 | 国产成人在线电影 | 青青河边草高清免费版 视频 | 国产女合集| 日韩欧美一区二区三区在线视频 | 日本午夜精品一区二区三区 | 2020狠狠操 | 青青久在线视频免费观看 | 精品国产免费人成在线观看 | 精品国产91久久久久久久妲己 | 成人av网站免费观看 | 国产精品丝袜久久久久久不卡 | 日本一区视频在线观看 | 极品美女啪啪 | 成人av网址在线 | 黄网站污 | 国产黄色tv | 欧美日韩18 | 日韩精品电影网 | 日本成年免费网站 | 夜夜嗨av一区二区三区四区 | a毛片在线 | 久久久久久久国产 | 美女黄的视频全免费 | 亚洲另类一区二区 | 最新中文字幕第一页 | 男同互操gay射视频在线看 | 亚洲大胆视频 | 国产区一区二 | 欧美精品日韩精品 | 国产精品久久久久久久久久新婚 | av中字在线观看 | 麻豆自拍偷拍 | 久久精品欧美日韩精品 | 天堂色婷婷 | 色婷婷av一区二区三区在线观看 | 国产盗摄av | 成人激情黄色网 | 欧美激情视频一区二区三区 | 精品视频自拍 | 成人在线国产 | 黄色片入口 | 欧美日韩激情视频 | 欧美专区一区 | 亚洲免费精品视频 | 成年人视频在线观看免费 | 美女扒开内给男人亲 | 亚洲福利视频专区 | 久久疯狂做爰流白浆xx | 色哟哟国产精品 | 福利在线免费看 | 91性视频 | 中文字幕专区 | 国产一区二区观看 | 日韩电影一区二区三区 | 最新福利视频网站 | 欧美三区在线视频 | 网址你懂的在线观看 | 口述3p做爰全过程 | 国产精品三级久久久久久电影 | 黄色亚洲在线 | 一区视频免费 | 美女脱光衣服让男人捅 | 日本va视频 | 性高湖久久久久久久久 | 亚洲青涩在线 | 艳妇臀荡乳欲伦交换在线播放 | 欧美午夜片在线观看 | 亚洲成人套图 | 色婷婷综合五月 | 精品三级av | 9i看片成人免费高清 | 精品久久久久久久久久久久久久 | 色牛牛av | 自拍偷拍福利视频 | 国产美女网站 | 欧洲免费毛片 | 中文字幕亚洲一区二区va在线 | 色国产精品一区在线观看 | 奇米影视777第四色 婷婷电影网 | 国产chinese男男网站大全 | 午夜激情一区 | 久久国产精品久久国产精品 | 欧美精品一区二区三区蜜桃视频 | 亚洲第一视频网站 | 91系列在线观看 | 鲁视频 | 999国产在线视频 | 在线观看视频www | 国产精品第五页 | 国产精品高潮视频 | 亚洲va久久久噜噜噜久久天堂 | 伊人久久久久久久久久久久久 | 综合网伊人| 日本三级香港三级人妇99 | 婷婷综合亚洲 | 俄罗斯精品一区二区三区 | 久久中文字幕视频 | 国产主播福利 | 激情一区| 99 国产精品 | 亚洲激情中文 | 91精品国产综合久久福利软件 | 视频在线观看一区 | 成人av在线播放网站 | 小宝贝真紧h军人h | 日本不卡视频在线播放 | 高h喷水荡肉爽文np肉色视频 | 97人澡人人添人人爽欧美 | 18网站视频| 欧美精品久 | 99re6热只有精品免费观看 | 2018国产精品视频 | 蜜臀在线播放 | 久久一区视频 | 免费成人高清视频 | 高清国产一区二区三区 | 精品蜜桃一区二区三区 | 日韩欧美精品在线 | 影音先锋 男人 | 欧美12--15处交性娇小 | 男男gay动漫| 激情五月亚洲 | 国产在线女主播 | 亚洲www啪成人一区二区麻豆 | 野花视频在线观看免费 | 欧美 日本 国产 | 亚洲激情在线播放 | 福利片一区 | 一级片一级片 | 在线观看 一区 | 打屁股sm视频 | 欧美日韩四区 | 欧美三级在线播放 | 太粗太深了太紧太爽了国产 | 久久看av | 爽爽淫人网 | 中文字幕 日韩欧美 | 黄色一级影院 | 欧美另类孕交 | 日韩精品麻豆 | 99蜜桃在线观看免费视频网站 | 久久夜色精品国产欧美乱 | 久久草av | 大伊人久久 | 四虎影院一区二区三区 | 影音先锋中文字幕第一页 | 亚洲精品二区三区 | 91国产中文字幕 | 日韩精品一区二区三区在线播放 | 亚洲三级av在线 | 欧洲亚洲激情 | 亚洲欧洲高清在线 | 蜜桃av色综合 | 亚洲美女视频网 | 疯狂做爰高潮videossex | 日本黄色一区二区 | 带娇妻被粗大单男3p大叫视频 | 国产精品一区久久久久 | 日日躁夜躁aaaaxxxx | 18视频网站在线观看 | 欧美v在线 | 午夜激情视频在线观看 | 亚洲aa在线 | a级片免费观看 | 美攻壮受大胸奶汁(高h) | 国产资源一区 | 一本一生久久a久久精品综合蜜 | 色片在线观看 | 亚洲iv一区二区三区 | 又色又爽网站 | 国产99精品在线观看 | 国产99久久久国产精品 | 北岛玲一区二区三区 | 97av在线视频 | 欧美aaa一级片 | 九色网站在线观看 | 黄页免费看 | 都市激情校园春色亚洲 | 丁香婷婷社区 | 91禁国产| 国产精品国产自产拍高清av | 国产黄色视 | 裸体无遮挡网站 | 国产精品稀缺呦系列在线 | 日韩天堂在线观看 | 久久不见久久见免费视频7 免费偷拍视频网站 | 193尤物 | 欧美麻豆一区 | 欧美亚洲系列 | 日本成人一区 | 美女视频污 | 冲田杏梨一区二区三区 | 五月天av网站| 99久久精品一区二区 | av国产一区二区 | 萝控喷水视频 | 男人和女人日批 | 男生插女生的视频 | 北岛玲一区二区三区 | 自拍偷拍在线播放 | 免费成人黄动漫网站 | 狠狠干av | 韩国美女视频在线观看18 | 国自产拍偷拍福利精品免费一 | 亚洲国产精品自拍 | 免费看黄色大片 | 色资源网站 | 国产日韩av一区 | 一区二区三区国产 | 国产精品久久久久永久免费观看 | 最新中文字幕视频 | 青青草视频在线免费观看 | 欧美日韩一二区 | 大胸美女被爆操 | 在线观看黄色片 | 国模私拍gogo| 午夜电影网一区 | 九九精品在线播放 | 美女扒开尿口网站 | 亚洲琪琪| 国产九九精品视频 | 国产欧美一区二区精品忘忧草 | 国产欧美日本 | 女人天堂网站 | 中文字幕精品国产 | 一进一出好爽视频 | 欧美精品aaa | 女生免费视频 | 手机av在线播放 | 精品xxxx| 奇米一区二区三区 | 在线免费看av的网站 | 久久久一区二区 | 国产免费观看久久 | 91精品国产日韩91久久久久久 | 午夜精品久久久久久久白皮肤 | 欧美人与禽zoz0性3d | 亚洲经典自拍 | 日日操天天摸 | 狠狠躁av| 最新自拍偷拍 | 可以免费看的av网站 | 水多多在线 | 亚洲一二区在线 | 亚洲aⅴ网站 | 欧美在线视频免费 | 国产精品久久777777毛茸茸 | 三上悠亚在线播放 | 火辣福利视频导航 | 在线免费观看成人 | 美女自卫慰免费视频www免费 | 亚洲片国产一区一级在线观看 | 欧美日韩在线观看一区二区三区 | 亚洲福利视频在线 | 日韩精品在线视频观看 | 亚洲理论片在线观看 | 91玉足| 久久久久久国产精品一区 | gogo专业国模私拍大尺度 | av亚洲国产| 福利视频二区三区 | 国产四区| 国产亚洲伦理 | yy6080久久伦理一区二区 | 91麻豆国产在线观看 | 日韩午夜视频在线观看 | 色综合夜夜| 色拍拍欧美视频在线看 | 精品国产免费一区二区三区香蕉 | 国产精品久久久久永久免费观看 | 亚欧洲精品在线视频免费观看 | 久久精品99国产精品日本 | 中文字幕国产一区二区 | 色哟哟入口| 日韩欧美成人激情 | 久久九九国产精品怡红院 | 少妇裸体淫交视频 | 亚洲韩国日本中文字幕 | 激情视频在线 | 欧美 日韩 亚洲 一区 | 91精品国产乱码 | 国产精彩在线视频 | 在教室轮流澡到高潮h | 中文在线а√天堂 | 美女又黄 | 三级网站免费播放 | 中文字幕这里只有精品 | 黄色av下载 | av网导航 | 两性午夜激情视频 | 成人免费看高清电影在线观看 | 色综合久久88 | 黄色网免费 | 亚洲裸体xxxx | 樱花影院最新免费观看攻略 | 欧美一级电影在线 | 女王玉足调教 | 国产精品日韩欧美大师 | 成人免费在线视频网站 | 亚洲一卡久久 | 韩国三级在线播放 | 国产精品久久亚洲7777 | 男女日批视频 | 青青草视频免费 | 岛国av网站 | aaaa毛片| 午夜精品一区二区在线观看的 | 亚洲欧美专区 | 久久国产精品久久久久 | 老色鬼av| 操日本美女网站 | 美女被到爽高潮视频 | 将军含着她粉红的乳尖 | 精品欧美一区二区三区 | 一区二区免费看 | www国产精品视频 | 免费在线播放黄色 | 缅甸午夜性猛交xxxx | 男人操女人动漫 | 99久久婷婷国产综合精品电影 | 久久大片网站 | 中文在线有码 | a国产在线 | 在线看a视频 | 一区二区三区视频免费在线观看 | 亚洲一区二区三区视频在线播放 | 99riav久久精品riav| 日韩在线午夜 | 五月天 丁香 | 91精品电影 | 国产h片在线观看 | 青青青视频自偷自拍 | 成人在线小视频 | 99精品欧美一区二区三区小说 | 草莓视频成人在线 | 色综合夜夜 | 丝袜 亚洲 另类 欧美 重口 | 超碰97中文 | 国产中文字幕av | 国产艳俗歌舞表演hd | 亚洲国产成人av在线 | 日本免费中文字幕 | 亚洲欧美综合 | 被各种陌生人np调教灌游戏 | 激情在线小视频 | 日韩精品 欧美精品 | 久射网 | 成人欧美一区二区三区黑人麻豆 | 1769视频在线 | 中文字幕一区二区三区在线乱码 | 国产在线视视频有精品 | 成人自拍视频在线观看 | 三上悠亚陪上司出差被要了在线 | 超级碰视频在线观看 | 久久天天躁狠狠躁夜夜爽蜜月 | 欧亚av | 麻衣的日常中文字幕 | 国产精品欧美精品 | 久久99精品一区二区三区 | av在线观 | 久久高清精品 | 91捆绑调教 | 日韩美脚美足在线播放 | 久久日视频 | 色资源在线观看 | 写真片福利在线播放 | 黄的网站在线观看 | 操日本老妇 | 一起草网名改成什么了 | 亚洲精品a | 亚洲成人基地 | 亚洲午夜在线观看 | 九色蝌蚪porny| 欧美在线你懂的 | 成人免费在线播放视频 | 国产又爽又黄免费动画 | 欧美怡春院 | 欧美乱妇高清无乱码 | av小说在线观看 | 在线观看亚洲一区 | 国产精品激情 | 日韩电影在线观看中文字幕 | 九九在线视频 | 久久人人爽爽爽人久久久 | 日韩网站免费观看高清 | 久久综合影视 | 国产日韩欧美自拍 | 亚洲第一二三四五区 | 日本黄色精品 | 日本国产一区二区 | 久久久久久久色 | 来个毛片网站 | 中文字幕av色 | 欧美精品成人一区二区三区四区 | 久久精品电影网 | 欧洲黄色精品 | 欧美性久久久 | 亚洲福利视频在线 | 中文字幕第 | 久久精品欧美一区二区三区不卡 | 精品人伦一区二区三区蜜桃免费 | 国产伦理一区二区 | 韩国黄色av | 日韩欧美色图 | 丝袜福利视频 | 精精久久 | 国产美女精品在线观看 | 九色视频导航 | 成全影视在线观看第8季 | 四虎新域名 | 欧美成年人网 | 国产日韩一区在线 | 黑人激情视频 | 亚洲男人的天堂一区二区 | av网站在线免费观看 | 337p日本欧洲亚洲大胆色噜噜 | 久久精品在线播放 | 天天干夜夜干 | 精品一区二区久久久 | 欧美a视频在线 | 蜜桃免费一区二区三区 | 欧美精品777| 日本一区二区三区精品视频 | 精品精品视频 | 99爱免费视频 | 先锋影音av网 | 欧美aaaaaaaaaa| 亲嘴扒胸摸屁股免费视频日本网站 | 亚洲一区二区三区久久 | 麻豆传媒一区二区三区 | 免费荫蒂添的好舒服视频 | 日韩精品久 | 香蕉视频免费在线 | 国产精品一级片在线观看 | 日本成人一级片 | 999久久久国产999久久久 | 成人黄色免费网站 | 亚洲日本aⅴ片在线观看香蕉 | 少妇2做爰bd在线意大利堕落 | 国产一区二区三区四区五区美女 | 日av在线播放 | gai视频在线观看免费网站 | 久久精品国产清自在天天线 | 成年人av在线播放 | 色呦呦网站入口 | 免费亚洲一区 | av一二三四 | 国产综合久久久久 | 中文字幕av第一页 | 蜜桃中文字幕 | 欧洲美女与性动交ccoo | 日本国产在线 | 91看片淫黄大片一级在线观看 | 欧美一区二区三区四区在线 | 天天色天天 | 欧美激情第一页在线观看 | 校花被c在线观看 | 精品少妇一区二区三区视频免付费 | 久久精品国产精品 | 丰满白嫩尤物一区二区 | 国产婷婷色一区二区三区四区 | 全是肉的高h文〈男男〉 | 成人av动漫网站 | 男插女视频在线观看 | 大桥未久恸哭的女教师 | 激情综合区 | 天堂资源中文字幕 | 激情成人综合 | 一二三区在线视频 | av网在线观看 | 欧美日韩一区不卡 | 日韩精品第二页 | 日韩三级电影在线 | 亚洲 国产 欧美 日韩 | 国产精伦一区二区三区 | 亚洲美女在线一区 | 天天干夜夜爽 | 精品久久久av | 国产又粗又大又硬 | 污导航在线观看 | av在线免费网 | 国产乱人伦精品一区二区在线观看 | 国产69精品久久久久99尤 | 亚洲专区中文字幕 | 天堂中文在线视频 | 日韩久久久久久久 | 日韩午夜在线播放 | 国产精品视频在线看 | 91在线三级 | 亚欧洲精品在线视频免费观看 | 在线综合网 | 午夜国产一区 | av中文字幕网站 | 亚洲另类校园小说激情武侠 | 香港日本韩国三级网站 | 午夜福制92视频 | 成人av高清在线 | 欧美精品在线视频 | 欧美极品一区二区三区 | 亚洲精品久久久久久久久久久久 | 日本激情在线播放 | 操日本美女网站 | 三级午夜影院 | 免费h片在线观看 | 欧美精品777| 欧美激情一区二区在线 | 美女啪啪无遮挡 | 成人亚洲欧洲 | 91久久中文字幕 | 中文字幕在线观看网址 | 国产夫妻精品视频 | 亚洲开心激情网 | 国产视频1 | 日本高清视频www夜色资源 | 99精品国产视频 | 污黄网站在线观看 | 久久久免费精品 | 欧美一级大片在线免费观看 | 日韩欧美一级二级 | 欧美一区二区二区 | 黄色av大片| 影音先锋 日韩 | 久久免费国产视频 | 色播综合| 操白丝jk | 亚洲免费av网址 | av在线大片| 成人小视频免费在线观看 | 91黄色免费观看 | www视频在线观看网站 | 国产偷倩在线播放 | av集中营| 精品国久久 | 欧美精品91 | av在线免费播放观看 | 97色站| 色佬视频在线观看 | 欧美日韩五区 | 欧美骚 | 国产福利网 | 色综合色综合色综合色综合色综合 | 日韩天天综合 | 男生操女生在线观看 | 久久成人亚洲 | 痴女扩张宫交脱垂重口小说 | 大尺度无内丝袜人体 | 国产日产欧美精品 | 美女被爆操在线观看 | 好看的国产精品 | 亚洲精品乱码久久久久久按摩观 | 日本高清视频www夜色资源 | 雷电将军和丘丘人繁衍后代视频 | 欧美人体一区二区三区 | 亚洲成人av在线播放 | 丁香婷五月| 在线一区二区三区四区 | 日韩精品高清视频 | 精品小视频 | 五月婷婷久久综合 | 丝袜美腿五月天 | 国产激情美女久久久久久吹潮 | 57pao国产成永久免费视频 | 91亚洲精品久久久蜜桃网站 | 日韩免费观看视频 | 婷婷色在线播放 | 全部a∨一极品视觉盛宴 | 黄色在线成人 | 娇妻之欲海泛舟无弹窗笔趣阁 | 午夜精品久久久久 | 久久久夜夜夜 | 综合导航| www.成人精品免费网站青椒 | 豆花免费跳转入口官网 | 女人性做爰100部免费 | 自拍偷自拍亚洲精品播放 | 日韩成人免费视频 | 在线中文视频 | 在线a人片免费观看视频 | 天天色亚洲色图 | 男生和女生差差的视频 | 国产精华一区二区三区 | 色老汉视频 | 欧美日韩国产一中文字不卡 | 欧美亚洲激情视频 | 麻豆免费在线观看 | 国产伦精一区二区三区 | 亚洲区欧美区 | 91久久国产最好的精华液 | 色狠狠久久aa北条麻妃 | 特大黑人巨人吊xxxx | 1级黄色片| 不卡的av在线 | 一本色道久久加勒比精品 | 亚洲国产精品成人综合 | 宅男频道在线观看 | 国产一区丝袜 | 亚洲国产伊人 | 五月天开心网 | 美女隐私黄www网站动漫 | 亚洲欧美另类在线观看 | 深夜福利成人 | 男男黄网站 | 二区在线视频 | 午夜影院网站 | 91在线观看免费视频 | 午夜性色福利影院 | 亚洲精选在线视频 | 青青草国产成人av片免费 | 美女人人操 | 免费国产视频 | 欧洲精品久久久 | 亚洲小视频在线观看 | 欧美日韩专区 | 日韩av在线一区二区三区 | 久草99| 欧美日韩国产中字 | 深夜在线免费视频 | 大j8福利视频导航 | 日韩精品视频免费在线观看 | 成人av三级 | 美女丝袜av | 91国产成人在线 | 国产精品久久久久永久免费观看 | 椎名由奈av一区二区三区 | 后进极品白嫩翘臀在线视频 | 日韩裸体视频 | 国产99久久久国产精品免费看 | 欧美a v在线 | 精品国产污网站 | www.亚洲天堂 | 91精品久久久久久久久 | 一级淫片试看 | 日韩a在线| 91猎奇在线观看 | 91网在线| 撅屁股+挨揍+虐臀+调教 | 中文字幕不卡的av | 先锋影音自拍偷拍 | 久久99精品国产一区二区三区 | 在线免费av网址 | 欧美精品久久久久久久久 | 婷婷综合av| 欧美亚洲国产bt | 欧美成人a| 亚洲欧美日本韩国 | 亚洲电影中文字幕在线观看 | 欧美激情一区二区三区在线视频 | 免费看久久久 | 精品无码久久久久国产 | 国产办公室沙发91系列 | 亚洲成人中文在线 | 久久视频免费观看 | 男生和女生靠逼视频 | 国产精品久久久久久久天堂第1集 | 日韩av网站在线 | 亚洲伊人久 | 日韩av大全 | 亚洲三级电影网站 | 欧美与黑人午夜性猛交久久久 | 亚洲国产日韩一区二区 | 色免费在线视频 | 久章草影院| 日韩一页 | 九九热在线视频免费观看 | av在线激情 | 日韩福利视频网 | 国产精品大全 | 久久99久久99精品蜜柚传媒 | 国产蜜臀 | 亚洲一区二区三区激情 | 91丨porny丨国产入口 | 法国淫欲护士h版在线观看 亚洲一区二区少妇 | 亚洲欧洲成人av每日更新 | 在线观看一区二区视频 | 亚洲视频观看 | 操操操影院 | 国产精品中文字幕在线 | 亚洲综合激情 | 日本高清视频www夜色资源 | 五月婷婷丁香网 | 2025韩国大尺度电影 | 国产高清一级片 | 做爰视频| 欧美一级大片视频 | 欧美91视频| 红桃视频成人在线 | 国产精品视频一二三区 | 毛片你懂的 | 深夜免费福利 | 日本精品一区二区三区视频 | 日韩一区二区三区观看 | 999在线视频 | k频道在线观看视频 | 亚洲最新中文字幕 | 91精品国产色综合久久不卡蜜臀 | 精彩视频在线看 | 骑骑夜电影在线观看免费播放 | 日韩不卡一区二区三区 | 黄网在线看| 欧美国产综合视频 | 欧美日韩一区二区三区在线视频 | 亚洲视频你懂的 | 永久免费视频网站 | 精品国产a | 国产91精品一区二区绿帽 | 国产欧美在线播放 | 天天射日日干 | 在线免费公开视频 | 日韩二三区 | 亚洲第一页在线 | 欧美成人性网 | 91嫩草香蕉 | 欧美人与性动交xxⅹxx | 夜夜撸网站| 国产女主播在线一区二区 | av资源在线免费 | 扒下小娇妻的内裤打屁股 | 成人资源在线 | 这里只有精品在线播放 | 色偷偷综合 | 麻豆精品一区二区三区 | 男女免费视频网站 | 国产精品国产亚洲精品看不卡15 | 久久一区欧美 | 影音先锋国产资源 | 伊人精品久久 | 国产精品美女久久久免费 | 亚洲欧洲免费 | 在线视频观看国产 | 亚洲第一中文字幕在线观看 | 日本午夜免费福利视频 | 日韩成人在线播放 | 国产亚洲视频在线观看 | 亚洲天堂免费视频 | 自拍偷拍第3页 | 精品国产一区二区三区性色av | 在线观看日韩 | 国产在线视频你懂得 | 美女娇喘 | 精品日韩电影 | 浮力屁屁影院 | 免费毛片大全 | 奇米一区二区三区四区久久 | 成人福利电影 | 国产美女视频自拍 | 亚洲国产精品综合小说图片区 | 日韩福利一区二区三区 | 成人久久一区二区三区 | 欧美成人黑人 | 国产一区视频在线观看免费 | 大桥未久恸哭的女教师 | 深夜视频免费在线观看 | av中文字幕电影在线观看 | 黄色三级高清 | 国语自产偷拍精品视频偷 | 亚洲国产精品久久久久婷婷老年 | 午夜一区二区视频 | 黄色精品一区 | 麻豆三区 | 成人在线免费小视频 | 高清一区二区三区四区五区 | 午夜美女视频 | 精品国产91久久久久久 | 制服丝袜国产在线 | 日韩成人在线视频网 | 亚色在线观看 | 91精品亚洲 | 日本一级理论片在线大全 | 色婷婷av在线 | 欧美精品久久一区 | 国产一区伦理 | 亚欧成人在线视频 | 亚洲欧洲精品成人久久奇米网 | 国产对白国语对白 | 在线视频中文字幕第一页 | 第一福利在线 | 宅男噜噜噜66国产在线观看 | 色佬视频在线观看 | 动漫裸体无遮挡 | 国产午夜激情 | 亚洲春色在线 | 先锋影音av在线 | 国产精品9999 | 久久国产日韩 | 日韩电影中文字幕在线观看 | 激情av综合 | 91在线视频网址 | 欧日韩不卡在线视频 | 台湾佬中文字幕 | 欧美另类z0zxhd电影 | 国产欧美精品日韩区二区麻豆天美 | 久久国产精品久久 | 天天操天天干天天 | 久久96国产精品久久99软件 | 亚洲超碰在线 | 日韩有码 在线视频 | 欧美专区日韩 | 先锋影音一区二区 | 国产超碰97| 亚洲欧美电影在线观看 | 国产黄色tv | 最新av在线免费 | 黄色三级av | 91视频一区二区三区 | 国产精品一二三产区 | 三级精品在线观看 | a一级免费视频 | 精品国产伦一区二区三区观看方式 | 久久爱www| 亚洲大尺度视频在线观看 | 亚洲专区免费 | 色呦呦一区| 色综合久久88色综合天天看泰 | 天天色综| 国内偷拍网站 | 欧美美女一区 | 触手tk折磨高潮 | 欧美视频直播网站 | 欧美国产激情18 | 一区二区三区精品在线 | 成人久久18免费网站图片 | 国产不卡a| 91麻豆精品国产91久久久更新时间 | 久草网免费在线观看 | 色噜噜视频 | 九色国产在线观看 | 精品国产露脸精彩对白 | 午夜小视频在线观看 | 在线观看免费黄视频 | 不卡三区 | 国产精品久久久久9999高清 | 日韩免费av一区二区 | www.在线观看av | 国产性色视频 | 娇妻互换日出白浆 | 亚洲国产天堂久久综合 | 91视频免费播放 | 亚洲色图国产精品 | 美女av毛片 | 中文字幕第一页久久 | 美女一级视频 | 日韩一二三区 | 91精品一区二区三区久久久久久 | 中文字幕天堂 | 国产传媒在线视频 | 国产美女av在线 | 欧美亚洲激情视频 | 成熟亚洲日本毛茸茸凸凹 | 色妞妞在线 | 天堂网久久 | 中国老妇性 | 蜜桃视频导航 | 先锋av资源吧 | 丁香六月综合激情 | av免费在线网 | 黄色片在线观看网址 | 国产黑丝在线观看 | 第一福利在线 | 麻豆av资源 | 五月天资源站 | 成人免费视频一区 | 热久久久久久 | 日韩久久精品一区 | 黄色福利网站 | 26uuuu精品一区二区 | 69堂成人精品免费视频 | 久久乐国产精品 | 国产一区二区视频在线播放 | 青青草网站 | 日韩av小说 | 日韩av免费在线 | 97在线资源站 | 奇米精品一区二区三区在线观看 | 午夜电影网站 | 国产日韩免费 | 成人av自拍 | 狠狠干伊人 | 国产精品欧美一区二区三区奶水 | 夜夜摸视频网 | 一区二区三区日本 | 亚洲成人天堂 | 黑人激情视频 | 日本va视频| 动漫美女扣逼 | 亚洲五月婷婷 | 日本精品影院 | 91操人视频 | 亚洲专区一区 | 亚洲国产精品久久人人爱 | 岛国视频一区 | 国产激情偷乱视频一区二区三区 | 日韩国产精品一区 | 91蜜桃在线观看 | 日本公妇乱淫xxxⅹ 色播五月激情综合网 | 亚洲精品第一 | 自拍偷拍99 | 中国爆后菊女人的视频 | 夜间福利在线 | 绿色小导航ˇ福利合集 | 99热在线免费 | 国产精品一,二,三 | 吉吉av资源 | 羞羞免费视频 | 成人一区二区三区在线观看 | 亚洲大片在线 | 男女激情视频一区 | 狠狠操五月天 | 在线看麻豆 | 欧美三区在线视频 | 中文字幕激情 | 日韩一级在线观看 | 西西人体做爰大胆gogo直播 | 日本成人在线不卡 | 日批免费看 | 亚洲精品小说 | 国产精品一区二区在线观看 | 她的花蒂道具调教1v1 | 中文字幕av一区二区三区 | 香蕉久久久久久久av网站 | 日韩中文字幕网站 | 久草网免费在线观看 | 精品久久久久久久久久久久久久久久久 | 大j8福利视频导航 | 欧美一级欧美三级在线观看 | 久久精品电影网 | 亚洲综合爱 | 女人av电影 | 色偷偷亚洲男人天堂 | 中文字幕韩日 | 俺去俺来也在线www色官网 | 国产精品久久久久久久裸模 | 91色乱码一区二区三区 | 人体裸体bbbbb欣赏 | 浮力影院国产第一页 | 国产免费激情 | 青青草原成人 | 在线播放一区二区三区 | 狠狠躁夜夜躁人人爽天天高潮 | 国产一区二区三区毛片 | 能免费看18视频网站 | 精品国产一区二区三区麻豆免费观看完整版 | 欧美一级黄色网 | 欧美在线观看视频一区二区 | 欧美另类video | 在线短视频 | 成人精品国产 | 欧美人体一区二区三区 | 1级片在线观看 | 九九影院在线观看免费 | 黄页免费网站 | 国产精品久久久久久久午夜片 | 欧美a在线 | 国产欧美一区二区三区在线老狼 | 日本高潮网站 | 都市激情校园春色亚洲 | 98超碰在线 | 色综合久久久久 | 亚洲精品日韩精品 | 日本黄色电影网址 | 九色porny自拍视频 | 国产美女在线直播 | 一区二区三区在线免费 | 久久一级大片 | 国产精品激情偷乱一区二区∴ | 三级伦理av| 青青伊人网 | 久久精品欧美日韩 | 91国内在线 | 天狂传说之巴啦啦小魔仙 | 91精品国产亚洲 | 国产肉体ⅹxxx137大胆视频 | 天堂资源中文在线 | 日韩av免费在线 | 永久免费在线看片 | 日韩中文视频 | 欧美精品久久 | 在线无限看免费粉色视频 | 欧美在线 日韩 | 天天射网| 国产精品久久久久一区二区 | 91精品国产综合久久香蕉麻豆 | 欧美精品资源 | 免费一级毛毛片 | 久久午夜羞羞影院免费观看 | 想要xx网站入口 | 欧美三四区 | 欧美精品一区二区在线播放 | 国产精品久久久久久久蜜臀 | 欧美人与性禽动交精品 | 日韩另类小说 | sm调教母狗 | 巨乳搜查官 | 久久精品国产sm调教网站演员 | 欧美视频在线播放 | 中文字幕成人一区 | 一区二区在线观看国产 | 午夜精品久久 | 欧美精品一二区 | 琪琪一区二区三区 | 欧美黄频 | 成人三级视频 | 久久99精品国产99久久6尤物 | 欧美少妇一区 | 中日韩视频在线观看 | 日本高清免费播放 | 99精品一区二区三区 | 免费视频xxx | 国模视频一区二区三区 | 欧美在线激情网 | 男人天堂网在线视频 | 国产在线一区二区 | 亚洲精品网站在线播放gif | 欧美色精品天天在线观看视频 | 久久国产精品偷 | 高清欧美性猛交xxxx | 国产精品扒开腿做爽爽爽视频 | 国产麻豆一区二区三区在线观看 | 男女一区| 亚洲天堂成人在线视频 | 青青草国产在线 | 欧美日韩国产综合在线 | 国产在线观看第一页 | 免费视频亚洲 | 凹凸日日摸日日碰夜夜 | 免费在线观看黄 | 欧美黄色片在线观看 | 日韩有码在线播放 | 国产乱码精品一区二区三区av | 午夜探花在线 | 国产一级性生活视频 | 日本一区二区免费在线观看视频 | 男人操女人逼网站 | 欧美日韩电影一区二区 | 亚洲人成人77777线观看 | 日韩av你懂的 | 欧美午夜一区二区 | 韩国日本中文字幕 | 蜜桃中文字幕 | 91九色成人 | 亚洲涩情 | 亚洲男人第一网站 | 中文字幕 巨乳 | 久久久久久久久久久久久久久久久久av | 国产成人精品一区二区三区四区 | 成人在线视频网站 | 在线能看的黄色 | 性折磨bdsm欧美激情另类 | 松本一香在线播放 | 老熟女毛茸茸 | 日韩三级中文字幕 | 巨粗高h双龙筋肉体育生 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕一精品亚洲无线一区 | 日韩videos高潮hd | 丁香婷婷综合五月 | 亚洲国产视频在线 | 2019中文字幕在线免费观看 | 欧美性护士 | 跪求黄色网址 | 一区二区在线免费观看 | 国产欧美日韩精品在线 | 999国产精品视频 | 欧美色图天堂网 | 99视频在线播放 | av天天爽 | 天堂电影院在线观看英文 | 日韩在线你懂得 | 精品二区在线 | 深夜福利一区 | 亚洲美女视频一区 | 天堂av毛片| 国产a级大片 | 先锋影音av中文字幕 | 卡通动漫精品一区二区三区 | 韩国av一区二区 | 国产这里只有精品 | 亲子乱一区二区三区电影 | av免费在线电影 | 一区二区三区在线观看欧美 | 日韩中文影院 | 日韩中文字幕av在线 | 日韩中文字幕在线免费观看 | 日本爽爽爽爽爽爽在线观看免 | 女性裸体无遮挡胸 | 中文字幕亚洲一区 | av资源在线免费观看 | 久久综合一区二区 | 天天色成人网 | 少妇视频在线播放 | 高清乱码毛片 | 色综合久久88色综合天天免费 | 亚洲一卡二卡三卡四卡五卡 | 日韩毛片网 | 亚洲成人免费视频 | 色七七影院综合 | 天天摸天天干 | 亚洲福利视频免费观看 | 日本一二三视频 | 国产99亚洲| av在线免费观看网址 | 麻豆国产一区二区三区四区 | 亚洲黄色影院 | 日本激情网站 | 色综合天天综合网天天狠天天 | 欧美色videos | 欧美大尺度视频 | 国产素人在线 | 精品一区二区三区日韩 | 成熟的女同志hd | 裸体运动xxxxlll | 欧美成人一区二区三区 | 天天爽夜夜春 | 成年人国产精品 | 国产一区二区三区在线观看视频 | 热久久av | 亚洲欧洲在线视频 | 美女bbw嘘嘘嘘看个够 | 福利国产视频 | 精品少妇一区二区三区日产乱码 | 污漫在线看| 欧美男插女 | 在勾引中学会爱 | 欧美色777| 日本美女网站在线观看 | 久久一区二区三区四区 | 一级肉体全黄裸片8822tv | 红桃视频成人免费网站 | 羞羞涩涩的视频 | 日日夜夜精品一区 | 美女国产一区二区三区 | 激情综合在线 | 美女av网站 | 国产一区二区免费在线 | 色视频网站在线观看 | 日韩成人午夜 | 国产在线视频不卡 | 黄网站免费大全入口 | 尤物av网 | 98精品视频| 欧美在线视频不卡 | 午夜免费福利小电影 | 人乳videos巨大吃奶 | 免费观看色| 日本乱大交xxxx公交车 | 日韩精品少妇 | 日韩另类在线 | 五月激情久久 | 男人天堂最新网址 | 国产精品 欧美激情 | 国产一区二区在线电影 | 日本少妇喂奶漫画 | 四虎影视4hu4虎成人 | 成人av亚洲| 色蜜桃av | 欧美日韩破处 | 在线播放av网站 | 法国复古freesex精品32 | 亚洲天堂免费在线 | 欧美aaaaa大片 | 日本一区二区免费高清 | www.男人的天堂.com | 国产午夜精品福利 | 日韩久草 | 中文字幕国产一区 | 国产第一页在线视频 | 日韩福利一区二区三区 | 天堂国产 | 韩国污网站 | 亚洲h视频 | 欧美国产在线一区 | 2024中文字幕 | 婷婷色综合 | 国产欧美一区二区在线 | 欧美激情 自拍 | 国产噜噜噜噜久久久久久久久 | 91精品区| 国内精品小视频 | 欧美精品三级在线观看 | 天堂精品 | 老师免费观看 | 麻豆视频网址 | 久久大香伊蕉在人线观看热2 | av人体| 麻豆视频在线观看 | 色av资源网| 午夜免费福利 | 欧美影院久久 | 国内精品第一页 | 91麻豆精品国产91久久久更新资源速度超快 | 中文字幕午夜 | 五月天 婷| 国产高清视频在线观看 | 亚洲激情综合 | 羞羞的视频网站 | 国产极品美女在线 | 舌吻一边亲一边摸 | 亚洲女同志亚洲女同女同 | 青青草免费在线视频 | 日韩国产一二三区 | 未满十八18勿进黄网站 | 成人黄色在线免费观看 | 黄色在线视频网站 | 色悠悠久 | 日韩和欧美一区二区 | 国产精品久久久久9999 | 亚洲男人的天堂在线 | 精品国产网站 | 奇米四色网 | 男女做运动视频网站 | 欧美激情视频一区二区三区在线播放 | 一边顶弄一边接吻 | 韩国爱的色放电影 | 欧美激情 自拍 | 先锋成人av | 精品一区二区三区在线播放 | 欧美性猛交xxxx乱大交极品 | 91九色网站 | 日韩免费一级 | 91福利小视频 | 中文字幕在线免费视频 | 欧美精品一区二区三区在线 | 3p自拍视频 | 色豆豆 | 丰满的继母4韩国电影 | 日韩经典一区 | 日韩黄色大片 | 国产精品高潮呻吟久久av黑人 | 欧美日韩国产综合一区二区 | 一区二区三区影院 | 久久婷婷国产 | 国产成人亚洲精品狼色在线 | 精品日韩在线 | www.自拍偷拍.com | 在线观看成人黄色 | 久久青草免费 | www黄色免费 | 久草视频看看 | 亚州av色图| 高清毛片在线观看 | 天天综合人人 | 91在线观 | 久久精品国产亚洲aⅴ | 欧美三级 欧美一级 | 成人黄色网址在线观看 | 出轨同学会韩剧免费观歌在线观看 | 国产高清视频 | av骚老师| 国产成人午夜精品5599 | 日韩av中文字幕在线 | 国产精品流白浆 | 午夜成人在线视频 | 又黄又爽的免费视频 | 国产三级视频在线播放 | 裸胸动漫 | 国产在线视频网站 | 日韩欧美亚洲一区二区 | 最好看的中文字幕 | 一区二区在线视频播放 | 新妻优香在线播放 | 中文字幕免费高清网站 | 97国产精品人人爽人人做 | 综合婷婷 | 草莓污视频在线观看 | 亚洲国产精品久久精品怡红院 | 自拍超碰在线 | 亚洲精品18 | 五月天激情综合网 | 调教高潮视频 | 五月国产精品 | 亚洲狠狠丁香婷婷综合久久久 | 欧美人xxxxx| 视频一区 视频二区 视频三区 视频四区 国产 | av亚州 | 欧美日韩亚洲国产精品 | 欧美丰满少妇xxxxx | 欧美深夜视频 | 久久亚洲精品视频 | 国产精品久久久久久久久晋中 | 黑人满足娇妻6699xx | 在线观看中文字幕亚洲 | 欧洲做爰大片 | 亚洲日本成人网 | av黄色观看 | 久久综合免费视频 | 国产在线观看免费高清 | 激情自拍视频 | 国产精品69久久久久 | 国产情侣一区二区三区 | 日韩精品午夜视频 | 美女又爽又黄免费网站直播 | av三级在线观看 | 美女啪啪免费视频 | 亚洲成人1234 | 奇米四色在线视频 | 狠久久| 超碰成人网 | 香蕉免费一区二区三区在线观看 | 两个人做aj的视频教程高清 | 欧美日韩电影一区二区 | 涩涩涩在线视频 | 黄视频免费大全 | 三男一女吃奶添下面 | 尤物视频官网 | 久久久久免费 | 亚洲嫩模一区 | 国产精品青青草 | 国产欧美一区二区 | 亚洲激情图 | 免费视频一区二区三区在线观看 | 成年视频免费高清在线看 | 日韩精品一区二区三区视频在线观看 | 欧美性生交xxxxxdddd | 日韩涩 | 你懂的视频在线播放 | 国产调教在线观看 | 国产成人精品一区二区 | 九月丁香婷婷 | 中文字幕 偷拍 | 涩涩视频在线观看免费 | 成人av第一页 | 日韩欧美天堂 | 日本久久网 | 美女自拍偷拍 | 亚洲免费专区 | 欧美激情成人在线视频 | 欧美a∨| 宝贝乖~胸罩脱了让我揉你的胸 | 女人扒开屁股让我添 | 成人激情电影在线 | 日本三级久久久 | 婷婷亚洲五月色综合 | 神马久久久久 | 蜜桃视频你懂的 | 高清国产在线 | 欧美亚洲成人精品 | 亚洲成av人片在www色猫咪 | 男女猛烈无遮挡 | 国产精品va在线播放 | 免费自拍视频 | 免费av在线网站 | 性欧美videos | 超碰在线最新网址 | 国产一二三区在线 | 蜜桃av麻豆av天美av免费 | 黄色在线观看免费网站 | 精品成人在线观看 | juliaann欧美二区三区 | 国产一区免费在线观看 | 婷婷狠狠干 | 天堂av在线资源 | 综合图区亚洲 | 欧美性猛交xxxx乱大交极品 | 亚洲特黄一级片 | a级片在线免费 | 青青伊人av | 女人扒开腿免费视频app | 熟色妇国产 | 疯狂做受xxxx欧美肥白少妇 | 亚洲精选视频在线 | 女被男啪到哭的视频网站 | 影音先锋久久 | 欧美日韩免费精品 | 拍拍拍动态图 | 亚洲奶水xxxx哺乳期 | 美乳视频一区二区 | 影音先锋玖玖 | 日本大尺度电影免费观看全集中文版 | 午夜精品导航 | 丁香六月婷婷 | 中国女人freexxxx性老师 | 九九热国产 | 色偷偷av | 鲁片一区二区三区 | 日本一级片 | 中文字幕永久在线观看 | 国产欧美日韩三区 | 能免费看18视频网站 | 神马久久精品 | 黄色小视频网页 | 午夜视频福利在线观看 | 欧美日韩一区二区在线 | 久草福利视频 | 欧美午夜理伦三级在线观看 | 奇米影音第四色 | 成人av电影网站 | 麻豆久久一区 | 三级视频在线播放 | 国产成人亚洲精品 | 喷潮在线观看 | 日韩成人精品视频 | 亚洲大胆视频 | 激情欧美一区二区三区中文字幕 | 手机电影在线观看 | 日韩精品中文字幕一区二区 | 人人干在线 | 成人午夜剧场视频网站 | 国产精品日韩精品欧美精品 | 最近中文字幕在线 | 美女操男生 | 国产福利91精品一区二区三区 | 国产亚洲一区二区三区 | 亚洲做受高潮 | 日本在线免费观看 | 亚洲男女网站 | 国产精品久久久久久久7电影 | 国内激情自拍 | 国产精品v一区二区三区 | 久久夜夜操 | 96精品视频在线 | 亚洲经典中文字幕 | 日韩草逼视频 | 天天躁夜夜躁狠狠躁2022 | 三级黄视频在线观看 | 国产午夜影院 | 黑鬼巨鞭白妞冒白浆 | 国产精品综合久久 | 国产美女网| 一级特黄aa大片免费播放 | 91在线视频精品 | 午夜精品久久久久久不卡8050 | 狠狠干人人干 | 国产女人水真多18毛片18精品视频 | 国产在线网址 | 日韩成人在线视频网 | 不卡一区二区在线 | 午夜伦理福利片 | www国产成人免费观看视频,深夜成人网 | 99精品国产福利在线观看免费 | 久久国产欧美精品 | 国产成人在线一区 | 亚洲综合日韩精品 | 极品美女啪啪 | 青春草视频在线 | 欧美精产国品一二三区 | 国产精品久久久久不卡 | a毛片成人 | 国产亚av手机在线观看 | 日韩激情视频网站 | 97成人在线 | eeuss国产一区二区三区四区 | 老妇女av| 日韩av一区二区三区在线观看 | 亚洲成人福利在线 | 久久av电影 | 色小孩导航 | 好吊视频一区二区三区四区 | 色咪咪网站| 欧美色哟哟| 天海翼一区二区 | 动漫女生光屁股 | 91精品国产综合久久精品性色 | 婷婷去俺也去 | 你懂的视频在线看 | 婷婷精品 | 亚洲午夜久久久久 | 色眯眯影视 | 九色porny丨精品自拍视频 | 色婷婷导航 | 欧洲精品亚洲精品 | av在线高清观看 | 精选一区二区三区四区五区 | 91popny丨九色丨国产 | 日本性毛片 | 国产美女视频网 | 男生坤坤放进女生坤坤里 | 日韩专区 中文字幕 | 亚洲精品欧洲 | 精品国产一区二区三 | a在线免费观看 | 欧美另类videosgrstv | 在线视频不卡一区二区 | 蜜臀久久99精品久久久画质超高清 | 欧洲成人综合网 | 国产精品美女av | 国产精品久久久久aaaa | 草莓视频在线观看视频 | 打屁股视频网站 | 亚洲自拍色图 | 日韩av一卡| 自拍在线视频 | 国产网友自拍视频 | 天天av资源 | 网址在线观看你懂的 | 四虎4545www国产精品 | 欧美精品一区在线播放 | 色婷婷一二三四 | 影音先锋日韩av | 法国空姐在线观看免费 | 一级黄色片在线 | 亚洲人成视| 麻豆精品精华液 | 中文字幕综合网 | 小视频在线免费观看 | 成人福利电影 | 欧美日韩三区 | 亚洲国产女人aaa毛片在线 | 一区二区高清视频在线观看 | 一区二区三区精品在线视频 | 91视频一区 | 国产一区二区丝袜高跟鞋图片 | 亚洲国产电影在线观看 | 未满十八岁禁止进入 | 亚洲国产精品中文 | 麻豆高清免费国产一区 | 美女扒开腿让人桶爽 | 欧美精品一区二区三区蜜桃视频 | 女主播在线观看 | 九色在线视频 | 亚洲 国产 欧美 日韩 | 最新av在线网址 | 成人影片在线播放 | 欧美色欧美亚洲高清在线视频 | 日韩福利电影在线 | 天天爱天天射 | av福利片 | 国内精品久久久久伊人av | 亚洲一区二区三区乱码aⅴ 开心激情伊人 | 国产精品.com | 婷婷操操 | 日韩免费成人网 | 亚洲精品成人a在线观看 | ,亚洲人成毛片在线播放 | 国产精品一区二区三区免费观看 | 欧美a∨ | 欧美在线一二三 | 国产在线一二三 | 久久美女久久 | 亚洲一区在线免费 | 波多野结衣中文在线 | 国产福利视频一区二区三区 | 美丽的姑娘观看在线播放 | 波多野结衣你懂的 | 国内黄色精品 | 成年人免费看片 | 日韩视频免费 | 欧美亚裔女优 | 国内精品久久久久 | 91成人短视频在线观看 | 欧美人在线视频 | 亚洲天堂精品视频 | 在线天堂亚洲 | 91香蕉视频在线 | 99理论片| 丝袜一区在线 | 亚洲 成人 av | 羽月乃苍番号 | 四虎网站永久免费 | 被闺蜜摁住强啪futa百合漫画 | 欧美美女黄视频 | 亚洲精品影院 | 扒开双腿给我看个够 | 色电影网址 | 亚洲国产第一页 | 亚洲第一成人在线 | 在线视频一区二区三区 | 国产91精品在线观看 | 久久久久电影 | 国产高清在线不卡 | 影音先锋在线亚洲 | 黑人专干日本人xxxx | 天堂√在线中文官网在线 | 国内免费av | 国产在线精品一区二区三区 | 国产成人精品亚洲午夜麻豆 | 迈开腿让我尝尝你的小草莓 | 少妇太爽了在线观看 | 国产极品探花 | 他揉捏她两乳不停呻吟动态图 | 精品久久久久国产 | 国产精品日韩精品 | 久久久久久久爱 | 国产a级网站 | 国产精品视频999 | 久久久精品亚洲 | 国产激情99 | 渔夫荒淫艳史 | 天天射天天射天天 | 久久久久一区二区三区 | 麻豆久久精品 | 国产午夜精品福利 | 91在线精品一区二区三区 | 欧美一级久久久久久久大片 | 日韩电影中文字幕在线 | 99久久久国产精品 | 国产精品人成在线观看免费 | 亚洲精品视 | 精品国产乱码久久久久久丨区2区 | 午夜视频一区 | av在线观| www视频在线观看网站 | 国产一区二区免费视频 | 一级性爱视频 | 国产第一页在线视频 | 日韩一区二区三区在线播放 | 337p粉嫩大胆噜噜噜噜噜91av | 国产在线播放91 | 99免费视频 | 欧美激情视频在线 | 一本色道久久综合狠狠躁篇的优点 | 免费av 在线| 在线视频婷婷 | 蜜桃av麻豆av天美av免费 | 国产污污在线观看 | 亚洲一区二区三区视频在线播放 | 欧美在线一区二区视频 | 男生舔女生的屁股 | 北条麻妃在线一区二区 | 欧美一级性| 成人免费网站在线观看 | 18pao国产成视频永久免费 | 琪琪免费视频 | 男生舔女生胸 | 精品国产一区二区三区久久久 | 欧美激情视频在线 | 亚洲伊人网站 | 91日韩在线播放 | 日韩精选视频 | 18黄暴禁片在线观看 | 国产视频在线一区二区 | 黄网在线看 | 美乳在线播放 | 97国产精品免费视频 | 欧美老女人在线视频 | 免费在线成人av | 国产精品国产三级国产aⅴ无密码 | 欧美va天堂 | 少妇高潮呻吟 | 豆花免费跳转入口官网 | 亚洲免费在线视频 | 国产欧美一区二区精品婷婷 | 免费看裸体视频网站 | 欧洲激情综合 | 手机在线观看av网站 | 国产一区二区免费在线 | 国产 麻豆 | 精品少妇一区二区三区日产乱码 | 天堂中文在线观看 | 免费亚洲网站 | 国产欧美视频在线观看 | 制服丝袜av在线 | 美女很黄很黄是免费的 | 国产1区二区 | 91小视频在线观看 | 欧美在线不卡 | 亚洲狠狠干 | 国产精品一区二区三区99 | 这里只有精品久久 | 久久久久久久亚洲精品 | 日本午夜免费视频 | 夜夜摸视频网 | 日韩精品电影在线 | 狠狠爱夜夜爱 | 亚洲精品久久久久久国产精华液 | 欧美黄色成人网 | 捆绑体育生直男榨精呻吟 | 四虎国产精品永久在线国在线 | 国产福利免费在线观看 | 黄色成人动漫 | 欧美色精品天天在线观看视频 | 日日夜夜精品视频免费 | 麻豆成人免费电影 | 精品国产乱码久久久久久久久 | 国产精品久久久久久久久久久久午夜片 | 免费视频www在线观看网站 | 国产三级精品三级 | av白浆| 国产精品美女av | 毛片av免费看 | 免费观看av | 琪琪午夜伦理 | 337p粉嫩大胆噜噜噜噜噜91av | 免费中文字幕在线观看 | 永久免费av网站 | 中国丰满老太hd | 五十路japanese55丰满 | 女人扒开屁股让男人捅 | 日本激情在线 | 红桃视频网站 | 天堂网中文 | 手机看片1024你懂得 | 国产激情网 | 亚洲午夜精品福利 | 亚洲一区二区综合 | 中文字幕999| 狠狠躁夜夜躁xxxxaaaa | 最近最好看的2018中文字幕电影在线观看 | 亚洲成人免费 | 欧美精品一区二 | 成人精品一二区 | 重囗味sm虐调教 | 成人一区二区三区视频 | 色免费视频| 人人骚| 欧美精品一区二区免费 | 久草视频免费 | 中文字幕在线观看网址 | 日韩美女视频一区二区 | 男人天堂tv | 日韩精品在线视频观看 | 中文字幕一精品亚洲无线一区 | 五月丁香啪啪 | 日本少妇喂奶 | 国产最新视频 | av一区二区三区在线观看 | 国产精品三级电影 | 你懂的在线观看网址 | 久久精品一区二区三区四区 | 亚洲人网 | av在线电影播放 | 婷婷丁香久久 | 最近中文字幕在线观看 | 日韩中文字幕网 | 动漫涩涩网站 | 久久国产日韩欧美 | 亚洲裸体视频 | 最新自拍偷拍 | 国产日韩专区 | 亚洲国语精品 | 欧美国产激情二区三区 | 日韩欧美aⅴ综合网站发布 永久视频在线观看 | 男人操女人逼逼视频 | 日韩高清在线观看 | 国产在线一区二区 | 青青青视频自偷自拍 | 欧美日韩国产一区在线 | 迈开腿让我尝尝你的小草莓 | 日本中文字幕一区二区 | 日韩国产精品久久久久久亚洲 | 热久久这里只有 | 国产三级高清在线 | 成人在线视频免费观看 | 色吊丝av中文字幕 | 国产suv精二区九色 能在线观看的av网址 | 久久久久久久久99精品 | 国产婷婷色一区二区三区在线 | 久久亚州 | 国产在线传媒 | 亚洲国产精品系列 | 激情视频qvod | 青草视频免费看 | 伊人色综合影院 | 欧产日产国产精品视频 | 久久99国产精一区二区三区 | 713电影免费播放国语 | 火影黄动漫免费网站 | 91欧美精品午夜性色福利在线 | 色网在线视频 | 欧美性生交片4 | 国产三级高清 | 国产精品v欧美精品v日韩 | 亚洲乱码国产乱码精品精98午夜 | 女人与公拘交酡全过女免费 | 欧美一级精品 | 91亚洲精品在线 | 精品国产视频在线 | 人人澡人人澡人人看添av | 欧美女优在线观看 | 国语一区二区三区 | 久久天天综合 | 欧美深夜影院 | 亚洲日日骚 | 亚洲一区二区在线 | 99精品视频在线 | 日本一区二区成人 | 久久成人高清 | 亚洲综合一区二区 | 88国产精品欧美一区二区三区 | 伊人色影院 | 国产成人a v | 亚洲一二三四在线 | 久久久久国产一区二区三区四区 | 婷婷激情小说 | 精品一区二区三区免费播放 | 美女爽到高潮91 | 国产日韩综合 | 免费福利视频在线观看 | 日韩精品成人一区二区在线 | 狠色综合7777夜色撩人 | 97在线免费 | 麻豆国产一区二区三区 | 国产女人18水真多18精品一级做 | 麻豆一区二区在线观看 | 久久亚洲成人 | 精品国产一区二区三区麻豆免费观看完整版 | 国产精品91一区二区 | 美日韩一级片在线观看 | 国产精品欧美久久久久一区二区 | 国产日韩欧美激情 | 一级香蕉视频在线观看 | 国产精品日本精品 | 国产98色在线 | 亚洲人妖在线 | 日韩在线毛片 | 每日更新在线观看av | 黑人操亚洲女 | 男男gay动漫| 黄色成人免费看 | 日韩免费一区二区 | 亚洲天天更新 | 中文字幕国产日韩 | 亚洲电影中文字幕在线观看 | 黄色网页免费观看 | 少妇av影院 | av婷婷久久 | 毛片资源 | 日本女人性视频 | 欧美性一级 | 欧洲一区在线观看 | 久久免费黄色 | 成人久久一区 | 男生插女生的视频 | 美女写真福利视频网 | 高清电影免费 | 日韩精品毛片 | 国产一区国产二区国产三区 | 欧美天天综合网 | 日韩欧美电影 | 国产偷v国产偷v亚洲高清 | 18视频在线观看免费 | 精品国产一区二区三区不卡 | 午夜在线成人 | 欧美一区二区三区系列电影 | 欧美一级生活片 | 精品一区二区三区视频在线观看 | 欧美国产精品一区 | 美女被入视频 | 在线国产欧美 | 美女 一区| 一区二区三区精品视频在线观看 | 国产精品成人一区二区 | 都市激情 亚洲色图 | 在线观看黄色av网站 | 无套内谢的新婚少妇国语播放 | 91制片国产 | 在线观看免费视频你懂的 | 超碰在线视屏 | 今天高清在线视频播放 | 国内福利视频 | 成人久久18免费网站图片 | 亚洲成人7777 | 国产精品视频xxxx | 日韩福利在线观看 | 裸体美女免费视频网站 | 另类图片第一页 | 亚洲国产高清国产精品 | 成人精品亚洲 | 欧美日韩国产影院 | 亚洲在线免费观看 | 久久色图 | 在线视频a| 黄色av黄色 | 村上里沙av| 欧美国产日韩一区二区 | 欧美放荡办公室videos4k | 色资源导航 | 久久99精品国产.久久久久久 | 激情成人在线视频 | 在线欧美 | 99久久伊人 | 免费看的黄色av | 一区二区三区高清视频在线观看 | 国产高清精品一区二区三区 | 欧美精品一区二区三区蜜桃视频 | 国产精品久久波多野结衣 | 日韩在线观看一区 | 久久第一页 | 久久精品视频免费播放 | 无遮挡裸光屁屁打屁股男男 | 伊人春色在线视频 | 国产在线一区二区三区 | 激情校园亚洲 | 亚洲成人一二三 | 中文av资源| 在线国产精品一区 | 牛牛av影院 | 欧美一区网站 | 五月婷婷视频在线观看 | 91嫩草视频在线观看 | 亚洲伦理精品 | 日韩电影免费在线观看中文字幕 | 成视频在线观看 | 久草免费在线观看 | 免费中文字幕日韩欧美 | 2019亚洲男人天堂 | 美女又黄又免费的视频 | 91欧美在线 | 福利精品视频在线 | 久久精品视频一区二区三区 | 黄色网址分享 | 久久久久久久av麻豆果冻 | 久久视频在线 | 免费看黄网站在线看 | 一区二区三区免费观看 | 午夜精品久久久久久久99黑人 | 成人高清在线观看 | 欧美xxxx黑人又粗又长密月 | 国产在线一区观看 | 狠狠躁日日躁夜夜躁影院 | 久久视频在线免费观看 | 亚洲福利视频导航 | 骚色av| 在线黄色av网站 | 91久久久久久久久久久 | 深爱激情久久 | 中文字幕8区 | 激情文学qvod | 在线视频三区 | 欧美日本不卡 | 精品国产乱码久久久久久丨区2区 | 亚洲一本| 永久免费的av网站 | 男人的天堂.com | 2021国产精品视频 | 91九色pron| 91麻豆精品视频 | 久久综合狠狠 | 超碰伊人网| 国产精品一区二区三区在线 | 久久影院一区二区三区 | 一级淫片15秒 | 一级黄色大片网站 | 亚洲精品色 | 国产在线www| 中文字幕一区二区三区乱码图片 | 日本亚洲自拍 | 午夜三级影院 | 青草青在线视频 | 精品国产一区二区三区麻豆免费观看完整版 | 视频一区二区在线 | 99久久精品国产毛片 | 岛国精品一区 | 成人桃色视频 | 成人综合网站 | 麻豆黄色网| 麻豆传媒在线看 | 日韩免费高清视频 | 亚洲精品乱码 | 国产一区高清 | 日本高清视频免费观看 | 美女洗澡隐私免费网站 | 国产日韩精品在线观看 | 午夜激情毛片 | 日韩有码视频在线 | av男人天堂av | 欧美一进一出视频 | 91夫妻视频 | 美女黄色免费网站 | 中文字幕欧美一区 | 日韩福利在线观看 | 中文字幕不卡的av | 大地资源中文在线观看免费版 | 日韩另类在线 | 中国妇女做爰视频 | 日韩欧美网址 | 国产激情999| 色嗨嗨av一区二区三区 | 日韩美女视频一区 | 欧美欧美欧美 | 色综合中文| 亚洲自拍偷拍区 | 边摸边吃奶边做爽gif动态视频 | 国产黑丝在线观看 | 黄色片视频在线观看 | 美女永久免费网站 | 欧美成人四级hd版 | 国产视频不卡 | 久久国产精品久久 | 五月天丁香综合久久国产 | 国产成人免费视频网站 | 亚洲精品乱码久久久久久日本蜜臀 | 97超碰.com | av影片在线观看 | 激情视频网 | 四桶影院 | 91av精品| 美国av明星 | 大尺度叫床戏做爰视频 | 男人狂揉女人下部视频 | 一区二区三区高清不卡 | 久免费一级suv好看的国产 | 亚洲免费观看高清完整版在线观看 | 欧美视频一二三区 | 欧美日韩h | 久久久免费电影 | 动漫美女被吸奶 | 日韩欧美国产中文字幕 | 亚洲激情午夜 | 影音先锋二区 | 91精品在线观看入口 | 亚洲成人一区二区在线观看 | 国产美女露脸 | 蜜桃视频在线播放 | 久久久久婷 | 天天色天天射天天操 | 欧美综合激情网 | 青青草原成人 | 国产免费观看久久 | 亚洲一区二区三区在线免费观看 | 亚洲 日本 欧美 中文幕 | 中文字幕久热 | 四虎国产精品永远 | 波多野结衣在线一区二区 | 国产一区二区三区久久 | 国产精品果冻传媒潘 | 女人囗交吞精囗述 | 国内精品久久影院 | 成人网在线观看 | 视频福利一区 | 婷婷久草 | 天天婷婷| 日日摸夜夜添夜夜添国产精品 | 极品视频在线播放 | 在线免费日韩 | 中文字幕在线高清观看 | 91久久精品国产91久久 | 欧美久久一区二区三区 | 午夜极品福利 | 肉丝av| 丝袜xxxx| 国产精品区一区二区三 | 亚洲影音av | 在线污网站 | 亚洲欧美韩国 | 午夜欧美一区二区三区免费观看 | 成年人视频在线观看网站 | 青青草原国产在线 | 久久久精品网 | av人人爽 | 9999视频在线观看 | 97在线视频免费 | 最新av网站在线观看 | 亚洲女人初尝黑人巨大 | 国内自拍视频一区二区三区 | 天堂视频在线观看免费 | 久久五月天婷婷 | 羞羞色在线观看 | 奇米网狠狠网 | 2019国产精品 | 日韩国产精品久久久 | 丁香花高清视频完整电影 | 国产视频福利在线 | 91在线观看成人 | 母亲的新男友李琼和谁在一起 | 999久久久精品 | 免费黄色资源 | 亚洲国产精品一区二区第一页 | 午夜欧美一区二区三区免费观看 | 欧美精品一区二区三区久久 | 德国空姐2电影在线观看 | 久久久香蕉 | 四虎永久在线精品免费一区二区 | 成人在线电影网址 | 经典三级第一页 | 亚洲欧美中文字幕在线一区 | 中文字幕视频免费在线观看 | 亚洲国产欧美在线人成 | 在线播放日韩av | 中国单亲乱xxxx| 成人片网址 | 国产日产久久高清欧美一区 | 久草资源 | 欧美理论片在线 | 国产青青视频 | 97精品视频| 高清av一区二区 | 大尺度无内丝袜人体 | 伊人福利在线 | 国产69精品一区二区亚洲孕妇 | 麻豆免费视频 | 国产午夜视频在线播放 | 亚洲一区 亚洲二区 | 久操资源 | 日本色网址 | 国产精选一区二区 | 91国产免费观看 | 操校花视频 | 春色伊人影院 | 精品亚洲一区二区三区在线观看 | 91国自产精品中文字幕亚洲 | 中文av在线字幕 | 国产精品高潮视频 | 一区二区三区四区精品 | 午夜视频一区 | 自拍偷拍伦理 | 黄上黄在线观看 | 日精品一区二区 | 粗大黑人巨茎大战欧美成人 | 国产黄在线观看 | 亚洲专区免费 | 国产综合久久 | 国产色片 | 福利视频导航网址 | 成年人影片在线观看 | 久久综合成人精品亚洲另类欧美 | 五月婷婷天堂 | 日韩视频免费观看高清完整版在线观看 | 12av视频 | 日韩 国产 在线 | 国产精品伦一区二区三级视频 | 国产精品888 | 欧美日韩国产在线看 | 麻豆传媒一区二区三区 | 在线亚洲人成电影网站色www | av中文在线播放 | 毛片网站在线免费观看 | 国产精品 一二三区 | 欧美18一19xxx性 | 日韩欧美网址 | 国语一级片 | 天堂网av2014 | 岛国片在线播放 | 国产美女主播在线观看 | 午夜精品一区二区在线观看的 | 免费在线观看你懂的 | 国产三级欧美三级 | 国产欧美另类 | 香蕉大人久久国产成人av | 夜夜草av| 精品福利一区二区三区 | 老女人网站 | 黄色在线看网站 | 涩涩视频免费观看 | 久久国产精品久久久久久电车 | 在线a级 | 伊人色综合久久天天五月婷 | 日本一区中文字幕 | 国产成人在线精品 | 国产高清不卡 | 日韩美女一区 | www香蕉视频| 91看片视频 | 精品孕妇一区二区三区 | 香港色网| 黄色男同视频 | 日本精品免费一区二区三区 | 91九色蝌蚪porn | 久久久在线| av网站在线播放 | 国产福利专区 | 国内免费av| 一区二区三区影院 | 99国产精品免费视频 | 亚洲综合在线免费观看 | 国产成人激情视频 | 色七七桃花影院 | 很狠撸| 国产在线丝袜 | 中文字幕在线视频一区 | 91高清网站 | 久久久久亚洲av毛片大全 | av网站中文字幕 | 久久婷婷麻豆 | 三女警花合力承欢猎艳都市h | ass极品国模人体欣赏 | 欧美巨大另类极品videosbest | 久久激情网站 | 青青草av免费在线观看 | 深爱五月激情网 | 成人av资源网站 | 少妇裸体挤奶汁奶水视频 | 爱爱视频在线播放 | 亚洲欧洲另类 | 美女高潮的视频 | 日日躁夜躁aaaaxxxx | 老司机免费精品视频 | 女人高潮视频网站 | 超碰人人草 | 亚洲国产高清不卡 | 男生女生插插视频 | 山口珠理番号 | 国产精品福利一区二区 | av电影网址大全 | 又黄又爽视频 | 午夜视频在线 | 2018天天操夜夜操 | 亚洲午夜精品久久久久久浪潮 | 91香蕉视频黄| 欧美成人久久 | 国产综合自拍 | 国内自拍av | 免费成人黄动漫网站 | 成年人视频在线免费观看 | 欧美性xxxxx极品少妇 | 91涩漫在线观看 | 久久免费av| 一区 二区 亚洲 | 精品久久国产字幕高潮 | 日韩视频免费观看高清完整版在线观看 | 91av国产在线 | 最爽free大尺度人妖 | 亚洲小说欧美激情另类 | 欧美日韩免费一区二区三区 | 日韩一区二区免费在线观看 | 国产精品一区免费在线观看 | 欧美日韩精品三区 | 婷婷国产精品 | 亚洲高清观看 | av日韩免费观看 | av收藏小四郎最新地址 | 亚洲色图 美腿丝袜 | 男女同房视频在线观看 | 亚洲一区二区三区视频播放 | 色av网址| 免费瑟瑟视频 | 黄色片网站在线观看 | 嫩草视频在线观看视频 | 欧美自拍在线 | 欧美疯狂做受xxxx高潮 | 91看片一区 | 老牛精品亚洲成av人片 | 亚洲v欧美v另类v综合v日韩v | 福利网站导航 | 天天色中文 | 久久综合五月 | 老司机色 | 91色在线视频 | 国产成人精品999 | 欧美三级三级三级爽爽爽 | 成年人网站免费视频 | 黄色在线观看网址 | 日韩国产欧美一区二区 | 神马午夜在线视频 | 精品欧美国产一区二区三区不卡 | 久久一久久 | 欧美在线一区二区 | 亚洲专区中文字幕 | 亚洲一区二区三区乱码aⅴ 开心激情伊人 | 超碰在线最新网址 | 亚洲精品网站在线观看 | 日韩免费高清视频 | 深夜av| 国产美女露脸 | 黄色小视频大全 | 中文字幕成人 | 国内久久视频 | 神马影院一区二区三区 | 亚洲在线免费播放 | 国产在线午夜 | 欧美freesex8一10精品 | 中文字幕制服丝袜 | 国产精品自拍网 | 欧美最顶级的aⅴ艳星 | 真实的中国女人做爰 | 天堂久久久久 | 欧美亚洲系列 | 国产麻豆午夜三级精品 | 国产精品卡一卡二卡三 | 欧美性影院 | 欧美专区在线 | 日韩在线在线 | 欧美四级在线观看 | 91蝌蚪porny | 加勒比av一区二区 | 婷婷色国产偷v国产偷v小说 | 亚洲美女av在线 | 91精品国产综合久久福利 | 亚洲综合区 | 色小说在线| 国产成人精品免高潮费视频 | 国产在线观看免费一区 | www.日韩视频| 在线观看免费毛片 | 国产女人爽到高潮a毛片 | 影音先锋每日 | 91久久久久久久久久久 | 一区二区三区高清在线观看 | 91丨九色丨蝌蚪富婆spa | av中文字幕免费在线观看 | 精品蜜桃一区二区三区 | 韩国伦理片免费看 | 污片视频在线免费观看 | 海角社区深夜入口 | 天堂国产| 欧美美女色图 | 国产综合久久久久 | 极品少妇一区二区三区 | 999久久久精品 | 日本欧美中文字幕 | 夜色在线视频 | 一区二区视频在线观看 | 97久久久久久| 黄色高清网站 | 免费v片在线观看 | 日本一二三区在线视频 | 亚洲一二三在线 | 日本国产一区二区 | 在线视频不卡一区二区三区 | 波多野结衣视频在线播放 | 国产免费资源 | 欧美 日韩 国产精品 | 久久黄视频 | 翔田千里影音先锋 | 国户精品久久久久久久久久久不卡 | 综合色网站 | 欧美日本高清视频 | 日韩精品免费观看 | 亚洲欧美日韩一区在线观看 | 又黄又爽的免费视频 | 精品一区二区久久久 | 日韩av免费一区 | 中文字幕一区二区三区乱码图片 | 日韩综合一区二区 | 97视频中文字幕 | 日本特黄一级片 | 亚洲综合色自拍一区 | 色网站免费看 | 色综合久久精品亚洲国产 | 动漫美女被入 | 国产精品一区二区久久久 | 四虎国产精品永久在线 | 国产综合福利在线 | 国产精品免费观看高清 | 日本xxxx高清色视频 | 影音先锋狠狠干 | 男人透女人免费视频 | 精品久久久久久国产 | 正在播放 国产精品 | 黑森林av凹凸导航 | 日本精品二区 | 三级黄色av网站 | 清纯唯美激情 | 视频一区二区三区在线观看 | 美女主播在线 | 黑人干亚洲女 | 麻豆影音先锋 | 麻豆久久久久 | 精品福利一区 | 肌肉猛男裸体gay网站免费 | av免费观看一区二区 | 黄网站大全 | 最近免费高清mv | 美女脱光衣服让男人捅 | b站大片免费直播 | 国产高清精品一区 | 成人午夜电影在线 | 欧美成人自拍视频 | 超碰成人在线免费 | 国产精品一区二区性色av | 黄色的网站免费观看 | 亚洲福利av | 奇米影视奇米色 | 欧美国产综合 | 亚洲成人二区 | 国产激情精品 | 激情福利视频 | 红杏导航 | 色噜噜视频| 肉肉视频在线观看 | 欧美黄色大片网站 | 欧美mv日韩mv国产 | 中文字幕制服丝袜一区二区三区 | 日本视频一区二区三区 | 高清在线不卡av | 日韩精品极品视频免费观看 | 在线观看国产黄色 | 国产xx网站 | 成人中文网 | 日韩视频免费观看高清完整版在线观看 | 可以免费看黄网站 | 四虎在线精品 | 成人免费福利 | 日韩黄色网 | 春色伊人影院 | 欧美午夜精品在线 | 三上悠亚激情av一区二区三区 | 日韩精品亚洲一区 | 四虎影视精品 | 高h亲子乱h | 国产精品乱码久久久久久 | 黄色最新网址 | 一区二区三区四区在线免费观看 | 久久手机免费视频 | 欧美三日本三级三级在线播放 | 波霸ol色综合久久 | 日韩视频一区二区三区四区 | 日韩国产欧美在线观看 | 国产一区二区三区在线视频 | 高跟鞋和丝袜猛烈xxxxxx | 天堂а√在线地址中文在线 | 日韩精品一区二区在线观看 | 久久久一区二区三区捆绑sm调教 | 99视频免费在线观看 | 高清视频一区二区 | 国产午夜性春猛交xxxx公交车 | 中文字幕制服诱惑 | 国产男人精品视频 | 天堂√中文最新版在线 | 欧美a网 | 国偷自拍 | 国产91丝袜在线观看 | 一本色道久久综合亚洲精品不 | 精品人成 | 日韩有码在线视频观看 | 精品盗摄一区二区三区 | 黄色免费在线看 | 偷拍第一页 | 午夜av资源| 在线观看一区不卡 | 国产不卡视频一区二区三区 | 国模精品视频一区二区 | 宣宣影音先锋 | 波多野结衣在线观看一区二区三区 | 四虎毛片| 97在线视频精品 | 亚洲视频在线视频 | 欧美午夜精品久久久 | 杀死比尔在线观看 | 日本人妖网站 | 好吊色综合高清 | 毛片在线观看网站 | 99自拍视频在线观看 | 五月丁香啪啪 | 三区在线观看 | 国产一二三四 | 日本黄色录象 | 亚洲激情影视 | 色狠狠av一区二区三区香蕉蜜桃 | 校园春色在线观看 | 视频一区二区三区中文字幕 | 久久综合99re88久久爱 | 水蜜桃影库 | 91精品婷婷国产综合久久 | 在线观看理论片 | 日韩少妇中文字幕 | 天天射寡妇射 | 自拍偷拍在线播放 | 国模一区二区 | 亚洲一区二区三区视频在线 | 91精品国产综合久久香蕉的用户体验 | 丰满秘书被猛烈进入高清播放在 | 国产不卡av在线免费观看 | 在线 国产一区 | 精品日韩| 久久av.com| 亚洲 在线| 嫩草在线播放 | 亚洲欧美不卡 | 亚洲日本免费电影 | 欧美激情欧美激情在线五月 | 在线看福利av | 天天操天天舔 | 精品日韩中文字幕 | 久久精品亚洲一区二区 | 中文字幕一区二区在线播放 | 日韩视频在线免费 | 成人av影院 | 精品国产视频 | 欧美国产高潮xxxx1819 | 免费亚洲网站 | 丝袜制服影音先锋 | 亚洲国产精品久久人人爱 | 男女羞羞无遮挡 | 免费视频一区 | 欧美就是色 | 国产精品久久久久久久久久久久久 | wwww在线观看 | 懂色av粉嫩av | 最新中文字幕av | 九色视频网站 | 国产超帅gaychina男同 | 精品国产乱码久久久久久浪潮 | 国产做爰xxx18在线观看网站 | 国产精品日产欧美久久久久 | 日韩一级完整毛片 | 三级黄视频在线观看 | 国产91精品久久久久久久网曝门 | 女人av电影| 黄av网 | 制服丝袜中出 | av 高清 尿 小便 嘘嘘 | 婷婷综合成人 | 欧美中文字幕在线视频 | 爆操白虎 | 91色在线视频 | 亚洲人成精品久久久久 | 在线免费视频一区二区 | 国产精品传媒入口麻豆 | 亚洲欧美日本在线 | 91久久精品美女 | 国产视频一区二区三区在线观看 | 亚洲风情亚aⅴ在线发布 | 日韩一区免费 | 国产又大又黄视频 | 色大师av一区二区三区 | 成人在线高清视频 | 2020狠狠操 | 亚洲一区二区三区高清 | 亚洲电影在线观看 | 欧洲不卡av | 韩国成人一区 | a天堂中文在线 | 日韩专区在线观看 | a在线成人 | 国产一区二区三区在线观看免费视频 | 97狠狠操 | 婷婷综合久久 | 成人免费看 | 日韩久久一区二区三区 | 久久久久免费精品国产 | 欧美视频一区二区在线观看 | 爱的色放 韩国 | 99热国产在线| 香蕉福利视频导航 | 香港av电影 | 亚洲素人av | 青青色在线| 亚色在线观看 | 97人澡人人添人人爽欧美 | 欧美一区亚洲 | 国产性猛交╳xxx乱大交 | 成人午夜激情网 | 欧美日韩国产综合草草 | 嫩嫩的一线天xxx馒头 | 国产尤物| av免费在线网 | 欧美日韩午夜激情 | 欧美视频精品 | 法国空姐在线观看视频 | 久久久久一区二区三区 | 国产婷婷色一区二区三区 | 女人性做爰100部免费 | 日本一区免费 | 99精品视频在线观看 | 青青在线精品 | 日本亚洲一区 | 精品一性一色一乱农村 | 国产69精品久久久久按摩 | 91九色老女人 | 中文字幕在线官网 | 午夜精品亚洲一区二区三区嫩草 | 国产精品海角社区在线观看 | 被两个男人吃奶三p爽文 | av电影在线观看 | 国产精品美女久久久 | 福利视频导航网 | 激情午夜影院 | 免费av在| 性渴老太作爱 | 动漫美女隐私无遮挡 | 蜜臀av性久久久久av蜜臀妖精 | 久久午夜国产精品 | 欧美日韩国产123 | 国产极品在线视频 | 中文字幕 麻豆 | 手机看片1024久久 | 国产日本欧美一区 | 色福利| 97人人精品 | 天堂av在线网址 | av三区在线| 精品久久久久久中文字幕大豆网 | 国产高清一二三区 | 福利写真视频在线观看 | 成人伦理在线 | 东北高大丰满bbbbzbbb | 色www精品视频在线观看 | 天天操综合网 | 92在线免费视频 | 一区二区免费看 | 日本 奴役 捆绑 受虐狂xxxx | 99视频入口 | 国产精品免费av | 欧美日韩在线视频一区 | 嫩嫩的一线天xxx馒头 | 精品国产一区探花在线观看 | 久久精品99国产精品日本 | 18黄暴禁片在线观看 | 午夜看片网站 | 岛国av一区二区三区 | 欧美丰满少妇xxxxx | 打开每日更新在线观看 | 韩日免费视频 | 午夜精品福利视频 | 一区二区三区 日韩 | 日本一本在线播放 | 91色花堂| 国产精品99久久久久久白浆小说 | 欧美一区二区在线播放 | 亚洲人成网在线播放 | 日韩最新在线视频 | 中文字幕日本一区二区 | 草逼视频网站 | 色噜噜久久综合伊人一本 | 日韩视频一区二区三区四区 | 今天高清视频免费看 | 激情午夜av| 国产精品入口日韩视频大尺度 | 国产精品1区2区 | 91精品在线国产 | av日韩电影网站 | 亚洲欧洲一区二区 | 日韩高清 中文字幕 | 韩日av网站 | 日韩av手机在线看 | 91国偷自产一区二区开放时间 | 成人免费在线播放视频 | 最爽free大尺度人妖 | 136微拍宅男导航在线 | 精品国产鲁一鲁一区二区张丽 | av日在线| 国产福利视频导航 | 亚洲成av人片在www色猫咪 | 少妇视频在线观看 | 麻豆免费在线视频 | 欧美 国产 亚洲 另类 动漫 | 亚洲二区在线视频 | 日韩av电影免费观看高清 | 欧美日韩h | 97视频精品 | 岛国精品在线观看 | 亚洲精品小视频在线观看 | 久草视频网 | 在线播放精品 | 91免费观看视频 | 狂野少女电影在线观看国语版免费 | 中文字幕 亚洲色图 | 国内自拍视频在线观看 | 天天色综| 亚洲精品国产精品国自产观看浪潮 | 日韩视频免费在线观看 | av有码在线 | 午夜视频网 | 国产欧美一区二区白浆黑人 | 久久激情小说 | 色综合久久久久久久久 | 国语free性xxxxx按摩 | 国产字幕侵犯亲女 | 日韩免费精品 | 沟厕沟厕近拍高清视频 | 4438xx亚洲最大五色丁香一 | 91九色免费视频 | 国产欧美另类 | 视频你懂的 | 俺也去婷婷 | 国产美女主播一区 | 日韩精品免费观看 | 亚洲自拍偷拍色图 | 模特的欲望在线观看 | 一区二区三区福利 | 精品在线视频一区二区三区 | 日本精品视频在线观看 | 欧美 日韩 另类 字幕中文 | 日韩亚洲欧美成人 | 香蕉视频网站在线观看 | 夜夜躁日日躁 | 中文字幕 日韩有码 | 色资源二区在线视频 | 欧美日韩久久一区 | 丝袜xxxx| 香蕉视频网站 | 电影一区中文字幕 | 亚洲欧美国产一区二区 | 男女羞羞动态图 | 草莓视频在线观看入口w | 国模少妇一区二区三区 | 梦梦电影免费高清在线观看 | 久热精品在线视频 | 青草草在线视频 | 超碰人人在线 | 欧美在线观看视频 | 国产99久久久欧美黑人 | 国产无遮挡又黄又爽免费软件 | 日本韩国一区二区三区 | 琪琪原网址 | 美女喷水视频在线观看 | 亚洲三级久久久 | 看了下面会湿的视频 | 国产精品一区二区欧美 | 国产网站免费 | 久久99国产精品久久 | 777精品伊人久久久久大香线蕉 | 欧美少妇裸体 | 色悠悠电影 | 嫩草发布页 | 国产一区二区麻豆 | 国产精彩在线视频 | 精品一区二区三区免费毛片爱 | 德国性xxxx | 人人操日日干 | 亚洲h在线观看 | 麻豆123 | 日韩av片免费在线观看 | 日韩高清 中文字幕 | 美女免费在线视频 | 亚洲激情国产 | 日韩天堂在线观看 | 天天爽夜夜操 | 亲子伦视频一区二区三区 | 亚洲成人短视频 | 色眯眯影院 | 在线观看三区 | av免费资源网 | 日本久久久久久久久久久 | 国产精品 欧美激情 | 国产丝袜视频在线播放 | 日韩免费网站 | 亚洲成人免费看 | 高清一区二区三区视频 | 伊人欧美 | 卡一卡二视频在线观看 | 中出少妇 | 97黄网| 教练含着她的乳奶揉搓揉捏动态图 | 捆绑凌虐一区二区三区 | 已满十八岁免费观看 | 波多野结衣中文字幕在线播放 | av中文字幕网站 | 精品成人久久 | 韩剧19禁啪啪无遮挡大尺 | 黄页在线免费观看 | 欧美网 | 靠逼动漫| 奇米影视亚洲春色 | 制服丝袜 亚洲 | 亚洲第一自拍 | 久久人人爽人人爽爽久久 | 男同互操gay射视频在线看 | 欧美一级爆毛片 | 污视频导航 | 校园春色 自拍偷拍 | 国产一区二区三区免费看 | 欧美日韩精品一区二区三区蜜桃 | 久久久97 | 高清视频一区二区 | 亚洲色图欧美激情 | 凹凸日日摸日日碰夜夜 | 草草视频在线 | 国产资源网 | 亚州av中文字幕 | 91精品国产综合久久香蕉922 | 日韩午夜免费 | 国产精彩视频在线播放 | 福利视频一区二区 | 午夜精彩视频在线观看 | 打屁股调教视频 | 男人操女人免费 | 亚洲精品中文字幕乱码 | 丁香欧美 | 亚洲区小说区图片区qvod | 国产欧美一区二区三区网站 | 操日本老太太 | 国产成人精品一区二区三区网站观看 | 天堂av导航 | 最近中文字幕一区二区三区 | 亚洲精品中文字幕在线观看 | 亚洲欧洲国产日韩 | 国产高清日韩 | 91国产中文字幕 | 老司机深夜福利视频 | 青青草老司机 | 轻轻色在线观看 | 日韩高清免费观看 | 久久国产加勒比精品无码 | 欧美疯狂性受xxxxx另类 | 精品免费在线 | 欧美一区欧美二区 | 欧美性猛交一区二区三区精品 | 国产美女久久久久 | 香蕉久久夜色精品国产使用方法 | 国产乱码精品一区二三赶尸艳谈 | 成人久久一区二区三区 | 922tv免费观看在线 | 亚洲婷婷影院 | 欧美偷拍综合 | 成人深夜电影 | 亚洲免费看黄 | 国产免费一 | 欧美性猛交xxxx| 九色电影网 | 久草99| 999热视频在线观看 成年无码av片在线 在线天堂亚洲 | 欧美精品午夜 | 欧美蜜臀| 国产美女久久久 | 国产激情久久 | 免费看黄色的网址 | 在线亚洲人成电影网站色www | 自拍偷拍视频在线观看 | 亚洲经典中文字幕 | 丁香电影网| 亚洲精品九九 | 成人黄色网页 | 欧美人与禽zozo性伦 | 伊人中文在线 | 国产乱码精品一区二区三区中文 | 亚洲免费在线 | 99精品国产福利在线观看免费 | 97色在线| 一本加勒比hezyo日本变态 | 亚洲免费影院 | 久久国产一区 | 日日躁夜夜躁狠狠躁aⅴ蜜 久久久久国产精品人 | 日韩专区精品 | 国产区一区二 | 精品丝袜久久 | 国产精品久久久久久久久 | 这里只有精品在线播放 | 亚洲一区免费在线观看 | 国产第一亚洲 | 91在线短视频 | 成品人片a91观看入口888 | 国产精品久久久久久久7电影 | 久久精品91 | av网站在线播放 | 久久久久久电影 | 午夜精品福利久久久 | 国偷自产av一区二区三区 | 国产美女在线观看 | 成人中文字幕电影 | 日本成年免费网站 | 久久色在线| 午夜高潮免费视频 | 不卡在线一区二区 | 午夜伦伦电影理论片费看 | 精品国产乱码久久久久久图片 | 中文字幕在线亚洲精品 | 性色av一区二区三区红粉影视 | 欧美成人性生活 | 在线观看 亚洲 | 亚洲精品国产精品国自产观看浪潮 | 国产一区二区在线免费视频 | 在线免费观看一区二区三区 | 成人午夜激情影院 | 国内自拍视频在线观看 | 黄色片在线观看网站 | 先锋影音国产一区 | av成人在线网 | 女优天堂网 | 日韩不卡一区二区三区 | 久久99久久99精品免观看粉嫩 | 日本三级韩国三级欧美三级 | 成人久久18免费网站图片 | 成人黄色中文字幕 | 国产综合激情 | 校园春色亚洲激情 | 国产精品一区二区三区乱码 | 日本伊人网 | 夜夜骑夜夜操 | 日日嗨| 激情小说电影 | 免费在线观看黄色 | 超碰在线99 | 午夜国产一区二区 | 亚洲美女性生活视频 | 中文字幕日韩欧美 | 护士裸体看个够 | 91精品国产综合久久香蕉的用户体验 | 亚洲一区影院 | 色亭亭| 黄色的免费网站 | 在线视频中文字幕第一页 | 男插女视频网站 | 国产精品中文字幕在线观看 | 加勒比日本在线 | 特级毛片爽www免费版 | 中国亚洲老头同性gay男男… | 欧美综合国产精品久久丁香 | 免费毛片在线视频 | 日韩一区二区在线视频 | 亚洲精品乱码久久久久久黑人 | 日本成人在线不卡 | 国产麻豆视频一区二区 | 久久国产福利国产秒拍 | 欧美在线亚洲一区 | 色悠悠视频在线 | 校园春色av| 尤物在线精品 | 黄色影院在线看 | 少妇视频一区 | 色免费在线观看 | 深夜宅男视频 | 日韩在线欧美 | 日韩视频在线免费 | 亚洲男人天堂视频 | 爆操视频在线播放 | 老师的丰满大乳奶 | 777片理伦片在线观看 | 户外露出一区二区三区 | 高清一区二区三区 | 国产亚洲一级 | 视频免费在线观看 | 国产极品在线观看 | 蜜桃久久久| 亚洲国产日韩a在线播放性色 | 人人澡超碰碰97碰碰碰 | 中文字幕一区二区三区在线观看 | 国产农村妇女精品一二区 | 模特的欲望在线观看 | 亚洲国产成人精品久久久国产成人一区 | 成人午夜又粗又硬又大 | 97久久国产精品 | 亚洲不卡| 法国空姐在线观看视频 | 激情五月综合网 | 亚洲第一在线 | 久久精品高清 | 麻豆传媒最新网址 | 国产日韩在线一区二区三区 | 黑人巨大亚洲一区二区久 | 亚洲黄色av网站 | 中文字幕av有码 | 男人的天堂va | 色偷偷噜噜噜亚洲男人的天堂 | 欧美福利一区二区三区 | 欧美亚男人的天堂 | 乱图区| 亚洲视频精品在线 | 激情欧美亚洲 | 成人免费网视频 | 日韩午夜电影网 | av免费在线一区 | 精品在线视频一区二区 | 欧美成人午夜 | 欧美系列一区二区 | 欧美黑白大战 | 女性裸体视频网站 | av片在线看| 老司机av福利 | 黑人巨大精品欧美一区二区免费 | 女性裸体无遮挡胸 | 凹凸日日摸日日碰夜夜 | 亚洲免费精品 | 精品伊人久久 | 日韩一区二区在线观看 | av网站免费在线观看 | 成人激情电影免费在线观看 | 亚洲国产日韩美 | 老女人性生活视频 | 欧美 国产 亚洲 另类 动漫 | 麻豆91网站| 欧美黄色小视频 | 亚洲三级在线免费 | 上海女子图鉴免费观看剧的完整版 | 日韩精品在线视频 | 白浆导航 | 欧美激情 一区二区 | 国产播放在线 | 日韩和欧美一区二区三区 | 亚洲一区 在线视频 | 亚洲天堂av女优 | 精品国产日本 | 人妖被c到高潮欧美gay | 亚洲国产免费 | 欧美精品一级二级三级 | 久青草视频在线观看 | 在线观看亚洲成人 | www.国产毛片 | 欧美视频第二页 | 成人动漫影音先锋 | 97在线视频免费看 | 日韩精品第二页 | 日韩欧美在线看 | 一级二级三级国产 | 日日干av | 亚洲 欧美 中文字幕 | 特级西西444www大精品视频 | 国产一区二区丝袜高跟鞋图片 | 91色在线视频 | 婷婷综合在线 | 制服丝袜亚洲色图 | 欧美日韩一二三 | 91插插插影库永久免费 | 捆绑凌虐一区二区三区 | 色妞久久| 国产免费成人av | 欧美日韩一区二区三区四区不卡 | 黄色动作视频 | 6680新视觉电影免费观看 | 精品无码久久久久久久动漫 | 成人av番号网 | 亚洲最新av在线 | 一本大道久久a久久综合婷婷 | 黄色在线看网站 | 少妇富婆凹凸做私密spa | 另类图片国产 | 免费黄网在线 | 午夜精品亚洲 | 欧美在线中文字幕 | 337p粉嫩大胆色噜噜噜 | 男女互操 | 成年美女黄网站色大免费视频 | 人成在线 | 一区二区三区久久 | 99久热re在线精品99 6热视频 | 一本大道av伊人久久综合 | 日韩欧美午夜 | 小泽玛丽亚在线观看 | 综合网中文字幕 | 国产自在线观看 | 亚洲涩爱 | 久久精品视频播放 | 在线免费黄色av | 国产做爰xxx18在线观看网站 | 激情你懂得 | 日韩1级片| 奇米久草 | 成人短视频在线观看 | 两女双腿交缠激烈磨豆腐 | 性感美女被草 | 永久网站aa毛片 | 亚洲免费天堂 | 日本xxxxx片免费观看19 | 午夜色综合 | 欧美喷潮久久久xxxxx | 精品精品久久 | 国产传媒视频在线观看 | 日韩欧美中文字幕精品 | 18视频在线| 777影院理伦片片 | 黄网免费在线 | av网站在线看 | 日韩在线麻豆 | 狂野欧美激情性xxxx欧美 | 欧洲最强rapper网站直播 | 亚洲xxx自由成熟 | 成人超碰在线 | 国产一级在线 | ass极品国模人体欣赏 | 女同调教视频 | 国产视频一区不卡 | 国产精品123| 成年午夜视频 | av不卡一区 | 色人天堂 | 国产在线xx | √最新版天堂资源网在线 | 国产精品日本一区二区 | 成人app在线 | 9久9久9久女女女九九九一九 | 国产粉嫩在线观看 | 337p日本欧洲亚洲大胆色噜噜 | 国产精品日韩精品 | 人成在线 | 4hu最新网址 | 少妇激情一区二区三区视频 | 四虎影视成人永久免费观看亚洲欧美 | 国产久在线 | 午夜宅男在线 | 亚洲天堂导航 | 一区二区免费在线视频 | 波多野结衣一二三四 | 国产男男gay互吃浪小辉 | 让男按摩师摸好爽 | 久青草资源福利视频 | 看片狂人网址 | 欧美在线一级 | 亚洲最大福利视频网站 | 国产三级视频在线播放 | 男女性动态图 | 国产精品免费视频一区二区 | 欧美在线高清 | 永久网站aa毛片 | 黄在线观看免费 | 久久久久久亚洲精品 | 深夜激情视频 | 精品麻豆av | 欧美日本亚洲视频 | 99国产精品久久久 | 精品国产伦一区二区三区免费 | 日韩视频第一页 | 91久久精品一区 | 国产欧美一区二区三区另类精品 | 亚洲日本成人网 | 国产视频中文字幕 | 亚洲一区二区三区精品在线观看 | 亚洲精品美女视频 | 日本色区 | 日本高清免费看 | 在线视频第一页 | 天堂资源在线中文 | 在线免费观看黄色片 | 人人爽久久涩噜噜噜网站 | 毛片毛片毛片毛片毛片毛片 | 91热精品视频 | 日本成人在线视频网站 | 亚洲精品视频播放 | 中文字幕av日韩 | 岛国av网站 | 成人免费网址 | 国产精品久久久久一区二区 | 国语对白精品一区二区 | 男人天堂 | av电影在线网 | 警花zjy吕总大尺度视频 | 久久久久91| 最近国语视频在线观看免费播放 | 色多多视频污 | 91亚洲视频| 国产精品一区二区三区久久久 | 在线观看色视频 | av一区二区三区四区 | 日韩和欧美一区二区 | 麻豆视频传媒 | 国产精品色悠悠 | 日韩三区视频 | 色撸撸网站 | 蜜臀久久99精品久久久久宅男 | 国产乱码精品一区二区三 | juliaann欧美二区三区 | 复古经典毛茸茸xxxxxxxx | 黄页网站免费在线观看 | 五月开心婷婷网 | 在线免费日韩 | 91高清在线免费观看 | 男女无遮挡120动态图有限公司 | 一区二区三区成人精品 | 天天综合网91 | 黑人干亚洲女 | 日韩精品一区二区三区视频 | av在线电影观看 | 韩国理伦少妇4做爰 | 欧美日韩一区二区视频在线 | 麻豆成人入口 | 亚洲最大福利视频网站 | 亚洲天堂成人在线观看 | 欧美熟妇毛茸茸 | 91免费观看网站 | 天堂va蜜桃一区二区三区漫画版 | 高清av电影网 | 在线观看av电影网站 | 精品蜜桃一区二区三区 | 桃色网站在线观看 | 国产美女视频免费观看下载软件 | 毛片无遮挡高清免费观看 | 亚洲高清网站 | 日韩不卡在线观看 | 日韩av电影院 | 中文字幕在线观看日韩 | 国产综合久久 | 国产在线观看精品 | 男女扒开双腿猛进入爽爽免费 | 久久依依| 国产另类自拍 | 欧美日韩免费一区二区三区 | 国产午夜一区二区 | 日韩欧美一区二区三区在线视频 | 99热免费在线 | 找国产毛片看 | 欧美亚洲久久 | 日韩高清不卡一区二区三区 | 美女av在线免费观看 | 中文字幕在线免费视频 | 免费国产羞羞网站视频 | av免费在线看网站 | 日本在线免费看 | 双乳被四个男人吃奶h文 | 亚洲自拍日韩 | 国产一区二区三区毛片 | 欧美不卡视频一区发布 | 欧美伊人久久 | 久久色av | 91看片黄 | 国产成人综合一区二区三区 | 久久久久免费精品国产 | 欧美激情一区二区三区不卡 | 国产日b视频 | 亚洲成人精品一区 | 在线观看不卡一区 | 久久大片网站 | 久久精品五月 | 中文字幕亚洲精品 | 成人激情视频网 | 91情侣在线 | 久色成人网 | 9l蝌蚪porny中文自拍 | 亚洲精品福利 | 亚洲综合av一区 | 日韩在线不卡视频 | 成人黄色三级 | 在线观看国产高清视频 | av男人的天堂在线观看 | 国产高清视频在线 | 久久久久久久av | 亚洲1区在线 | 欧美精品videossex88 | 特黄色大片 | 成人美女视频在线观看18 | 黄色av不卡 | 中文字幕免费播放 | 日本免费精品 | 亚洲精品资源在线 | 黄网站在线观 | 日日夜夜一区二区 | 无套内谢的新婚少妇国语播放 | 加勒比毛片 | 日韩精品极品视频免费观看 | 看av网址| 男同网站入口 | 在线观看三级电影 | 不卡av在线网 | 国产成人激情 | 午夜拍拍 | 欧美美女18p| 精品国产欧美一区二区 | 校园春色另类小说 | 亚洲欧美国产精品 | 一区二区欧美视频 | 国产成人aaaa | 污污网站入口 | 国产一区网站 | 狠狠麻豆 | 另类激情视频 | 五月综合久久 | 国产精品久久久久影院色老大 | 无码av中文一区二区三区桃花岛 | 黄色视屏网址 | 色中色tv| av综合区 | 国产嫩草影院久久久久 | 色婷婷亚洲 | 亚洲巨乳 | 亚洲app | 国产又黄又嫩又滑又白 | 亚洲成在| 欧美日韩卡一卡二 | 国产视频网站在线 | 日韩欧美视频一区二区 | 伦理片中文字幕 | 少妇水多多 | 久久精品视频免费播放 | 欧美打屁股 | 亚洲午夜电影在线 | 性久久久久久久久 | 亚洲国语精品 | 日韩一区在线免费观看 | 日韩激情网址 | 亚洲精选久久 | 色婷婷伊人 | 天天操天天爽天天摸 | 九色一区| 日本黄色高清视频 | 日日躁夜夜躁aaaabbbb | 国产欧美a | 男的舔女的逼 | 欧美一区亚洲二区 | 色综合一区 | 欧美 日韩 亚洲 综合 | 日本极品喷水 | 97色资源| 天堂网中文字幕 | k频道在线观看 | 欧美精品区 | 国产精品系列在线观看 | 国产精品一区免费观看 | 美女写真福利视频 | 婷婷亚洲五月色综合 | 久久成人免费视频 | 久久疯狂做爰流白浆xx | 91系列在线观看 | 日韩欧美一区二区在线观看 | 亚洲第一中文字幕 | 黑帮大佬和我的365日第二部 | 咪咪色网站 | 夜夜欢天天干 | 337p亚洲精品色噜噜狠狠 | 欧美一区久久 | 国产日韩综合 | 日本老师巨大bbw丰满 | 日韩区视频 | 欧洲午夜视频 | 久久九九国产精品怡红院 | free性丰满69性欧美hd | av高清在线观看 | 欧美日本乱大交xxxxx | 久久九九精品 | 狠狠干很很操 | 欧美性在线播放 | 美女黄色漫画 | 欧美日韩一区二区三区四区 | 女人扒开屁股让男人桶30分钟 | 国产精品一区二区久久久久 | a视频免费看 | 性大毛片视频 | 少妇av自拍| 丁香六月av | 久久久久国产成人精品亚洲午夜 | 制服丝袜成人动漫 | 你懂得在线免费 | 国产精品久久777777 | 少妇做爰www| 国产精品 欧美日韩 | 中文字幕8区 | 天天插夜夜操 | 日韩成人小视频 | 中文字幕在线观看一区二区三区 | 黄色片在线观看网址 | 国产a自拍 | 2019最新中文字幕 | 成人免费视频网站在线观看 | 成人av地址 | 校园春色欧美 | 精品三级久久 | 天堂网中文 | 精品日韩视频在线观看 | 一区精品久久 | 久久久国产精华 | 久久久久久久精 | 天天曰 | 欧美捆绑调教 | 久久久久久亚洲精品 | 国产欧美一区二区三区沐欲 | 欧美一区二区三区免费视频 | 丝袜性爱视频 | 亚洲精品久久久一区二区三区 | 骑骑夜电影在线观看免费播放 | 国产福利毛片 | 亚洲精品国产精品国自产观看浪潮 | 我的丝袜美腿尤物麻麻 | 伊人久久成人 | 红桃视频国产 | 国产盗摄女厕一区二区三区 | 九九热视频这里只有精品 | 美女扒开双腿 | 黄页在线免费观看 | 91精品国产亚洲 | 亚洲视频免费在线观看 | 欧美日韩hd| 免费成人在线播放 | 国产欧美久久一区二区三区 | 国产h片在线观看 | 福利视频导航网址 | 亚洲人成影院在线观看 | 色七七久久 | 一本色道久久综合精品竹菊 | 久久精品99国产精品日本 | 日本欧美在线观看 | 中文幕无线码天堂 | 天堂久久久久久 | 91久久精品一区二区三 | 成人综合在线观看 | 精品国产网站在线观看 | 亚洲瘦老头同性xxxxx | 欧美午夜久久久 | 在线a视频 | 精品亚洲一区二区三区在线观看 | 尤物在线免费观看 | 开心色婷婷 | 青青草成人在线 | 久久人人爽人人爽爽久久 | 性刺激视频在线观看 | 中国女人内谢69xxxx免费视频 | 九色丨porny丨自拍视频 | 日韩精品专区 | 色老头在线观看 | 日韩福利一区二区三区 | 午夜网址你懂的 | 人人草人人草 | 黄色成人在线免费 | 国产日韩视频在线观看 | 亚洲综合第一页 | 国产在线视频一区 | 美女视频黄8频a美女大全 | 欧美色婷婷 | 国产三a级三级日产三级野外 | 捆绑体育生直男榨精呻吟 | 日韩黄色在线 | av播放在线观看 | 黄色免费网站视频 | 欧美黄网站 | 日韩精品第二页 | 欧美在线小视频 | a在线免费 | 另类天堂网 | 肉肉av福利一精品导航 | 综合日韩av | 色六月婷婷 | 国产在线视频欧美 | 日本一区二区三区视频免费看 | 色综合色综合网色综合 | 毛片大全在线观看 | 免费在线国产视频 | 黄色av网站在线免费观看 | 奇米777狠狠干 | 最新国产在线视频 | 手机在线中文字幕 | 成人午夜电影在线播放 | 国产性色av | 婷婷草| 五月综合激情网 | eeuss鲁片一区二区 | aaaa毛片| 成人免费网站在线 | 91精品国产综合久久久久久久 | 亚洲电影av在线 | 精品欧美黑人一区二区三区 | 国产 日韩 欧美 中文 在线播放 | 日本中文字幕免费观看 | 自拍偷拍欧美激情 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 国产,日韩,欧美 | 中文字幕不卡的av | 日本激情网站 | 老司机在线永久免费观看 | 久综合网 | 日韩福利av | 水蜜桃亚洲一二三四在线 | 国产区在线看 | 91亚洲免费 | 色综合a | 欧美精品日韩 | 亚洲国产天堂久久综合 | 亚洲 一区 二区 在线 | 梦乃爱华av在线播放 | 欧美mv日韩mv国产网站 | 黄污网站在线 | 久久久久看片 | 欧美视频在线观看免费 | 日日射av| 国产亚洲精久久久久久 | 中文字幕2022 | 亚欧色视频 | 久久精品国产99精品国产亚洲性色 | 美女被男人c | 成人情趣视频在线观看 | 深夜福利黄 | av一区二区在线观看 | 成人亚洲精品久久久久软件 | 免费极品av一视觉盛宴 | 国产高清视频免费观看 | 国产精品高潮呻吟久久av野狼 | 麻豆精品国产传媒mv男同 | 少妇av导航 | 欧美日韩国产综合草草 | 国产精品免费久久久久影院 | 黄色在线播放 | 日韩a级片| 国产精品国产a级 | 欧美日韩第一页 | 91成人免费电影 | 一卡二卡三卡四卡在线 | 久久精品欧美一区二区三区不卡 | 涩涩视频在线看 | 久久不射网站 | 久久精品免费观看 | 国产丝袜不卡 | 中日韩视频在线观看 | 卡一卡二视频在线观看 | 久久久久久久久久久久电影 | 国产黄色大片 | 欧美日韩高清 | 自拍视频亚洲 | 超碰人人草 | 日韩欧美区| 色啪av| 尤物99国产成人精品视频 | www五月婷婷| 梦乃爱华av在线播放 | 久久国产精品第一页 | 国产91丝袜在线播放 | 亚洲一级特黄 | 看av网站 | 美女视频福利网站 | 国产资源一区 | 国产日韩中文字幕 | 91亚洲欧美 | 人人草在线视频 | 久久久久网站 | 日本高清免费中文字幕 | 不卡的毛片 | 一级片网址 | 夜夜嗨av一区二区三区网页 | 亚洲欧美专区 | 日韩一级精品视频在线观看 | av在线免费播 | 国产午夜视频在线播放 | 日韩午夜激情 | 四虎影视av | 国产乱人伦真实精品视频 | 在线色小说 | 91在线视频免费观看 | 日本字幕网 | 午夜aaa | av电影在线观看 | 国产一区二区三区四区五区在线 | 3d动漫精品啪啪一区二区免费 | 中文字幕第一区 | 92精品国产成人观看免费 | 日本精品国产 | av中文在线| 动漫3d精品一区二区三区乱码 | 精品免费在线观看 | 精品国产乱码久久久久久浪潮 | 欧美处女 | 神马午夜在线视频 | 日韩国产精 | 日日夜夜精品免费视频 | 欧洲亚洲自拍 | 少妇系列在线观看 | 少妇av导航 | 国产精品 日韩 欧美 | 欧美最猛性xxxxx免费 | 日韩资源av | 国产一区美女在线 | 日韩中文av | 葵司av未删减在线观看 | 欧美成人免费网站 | 色就是色综合 | 人人草人人 | 日韩一区中文 | 老司机精品视频网 | 高潮又黄又刺激 | 日韩在线一区二区三区免费视频 | 免费中文视频 | 欧美国产日韩在线 | 116极品美女午夜一级 | 欧美女人性开放视频 | 综合国产在线视频 | 深爱婷婷 | 天天激情综合 | 动漫玉足吸乳羞免费网站玉足 | 黄色在线观看视频 | 法国空姐电影在线观看 | av自拍| 久久久久国色av免费观看性色 | 男生插女生的视频 | 手机亚洲第一页 | 91精品国产91久久久 | 成人在线看片网站 | 色噜噜综合网 | 美国女孩毛片 | 久久99精品国产麻豆不卡 | 在线观看免费视频ww | 天堂网在线视频 | 在线观看av一区二区 | 黄色av网站免费在线观看 | 久久久999精品视频 又黄又色的网站 | 亚洲天堂免费在线观看视频 | 美女 一区 | 黄色av电影网 | 色图亚洲色图 | 精品一区二区久久久久久久网站 | 日韩伦理福利 | free性满足hd老太婆 | 国产91精品久久久久久久网曝门 | 狠狠干狠狠艹 | 国产精品久久久久久久久久久久久 | 国产精品成人av在线 | 日本少妇喷水视频 | av性导航 | 日韩欧美一区二区三区在线观看 | 国产制服在线 | av电影一区二区 | 日韩欧美高清在线视频 | 日韩精品午夜视频 | 亚洲欧洲中文日韩久久av乱码 | 精品久久久久久久久久久久久久久久久 | 9999视频在线观看 | 国产伦精品一区二区三区照片91 | 一区二区三区四区在线播放 | 日韩精品成人 | 韩国美女主播激情vip秀 | 最新中文字幕第一页 | 日本私人影院在线观看 | 欧美成年人网站 | 一区二区精品在线观看 | 国产a精品 | 精品久久一二三区 | 97视频色 | 在线激情 | 欧美脚交| 国产宾馆实践打屁股91 | 搞av电影| 97se狠狠狠综合亚洲狠狠 | 久久精品亚洲 | 五月天堂网 | 一区二区三区视频免费在线观看 | 成人黄页在线观看 | 久久久999精品 | 狠狠躁日日躁 | 亚洲视频国产视频 | 尤物在线观看 | 久久成人免费网站 | 久久综合色网 | 美女在线黄 | 娇妻被老王脔到高潮失禁视频 | 一级特黄aa大片免费播放 | 欧美激情综合网 | 国产视频精品一区二区三区 | 国产91在线观看 | 97超碰资源 | 男女爱爱动态图 | 92看片| 玉女心经 在线 | 色涩视频在线观看 | 国产高清中文字幕 | 亚洲自拍三区 | 亚洲国产精品一区二区尤物区 | 久久久久国产成人精品亚洲午夜 | 天堂成人国产精品一区 | 色视频线观看在线播放 | 精品少妇一区二区三区视频免付费 | 国产污视频在线 | 爽爽爽网站 | 住在隔壁的她动漫免费观看全集下载 | 黄色中文在线 | 香蕉视频A| 91精品国产91久久久久 | av黄网| 国产乱码精品一区二区三区五月婷 | 最近最新最好看的2019 | 大肉大捧一进一出免费三分钟 | 国产精品亚洲欧美 | 这里只有精品在线播放 | 自拍第一区 | 日韩av自拍 | av在线天堂网| 亚洲欧美亚洲 | 日韩在线观看一区二区 | av福利在线导航 | 农村少妇 | 捆绑无遮挡打光屁股调教女仆 | 黄色电影免费在线看 | 日韩成人激情 | 久久狠狠干 | av播放在线观看 | 大乳boobs巨大乳bbw | 久久蜜桃av一区二区天堂 | 久久影视一区 | 亚洲第一黄色网 | 日本a v网站 | 日韩av在线看 | 丝袜偷拍 | 日韩av电影在线免费观看 | 中文字幕精品av | 国产一区二区观看 | 国产又黄又粗又猛又爽 | 国产精品久久久久aaaa九色 | 丰满肉肉bbwwbbww | 日韩中文一区二区 | 日本少妇裸体大胆私密照片 | 校园春色偷拍 | 丝袜系列第一页 | 韩国主播午夜大尺度福利 | 91成人超碰 | h视频网站在线观看 | 久色小说 | 国产女烈大尺度sm受刑视频 | 久久久精品有限公司 | 亚洲丝袜中文 | 青春草国产 | 国产一区二区成人 | 日韩在线视频国产 | 超碰97av| av在线官网 | 免费a视频在线观看 | 最新av在线网站 | 美女脱了裤子让男人桶 | 91久久精品在线 | 操老女人视频 | 亚洲一区二区三区中文字幕 | 欧美日韩精品一区二区三区蜜桃 | 丝袜脚交视频 | 特级淫片裸体免费看 | 国产一区二区三区在线观看免费 | 久久av一区二区 | 久久久精品在线观看 | 人人射人人爽 | 操欧美老女人 | 国产精品久久久久久av | 91成人免费网站 | 亚洲精品小说 | 国产精品海角社区 | 日韩一区欧美 | 精品久久久久久久一区二区蜜臀 | 成人激情图片网 | 天天操天天插天天干 | 久久久久美女 | 午夜草莓视频 | 国产精品第一国产精品 | 日韩av中文字幕在线播放 | 不卡视频在线 | 久久综合久久88 | 国产精品 国产精品 | 91精品国产乱码久久久久久蜜臀 | 黄色成人免费看 | 中文字幕在线成人 | 91精品国产综合久久香蕉 | av网站观看 | 国产精品美女久久久久高潮 | 在线播放妃光莉妃ひかり | av成人在线网 | 五十路六十路七十路熟婆 | 日韩欧美高清在线视频 | 久久精品国产77777蜜臀 | 亚洲久久视频 | 日本50路肥熟bbw | 麻豆av在线电影 | 免费黄视频网站 | 国产午夜精品一区 | 台湾佬中文字幕 | 国产不卡在线观看 | 中文字幕精品网 | 国产对白羞辱绿帽vk | 欧美午夜剧场 | 亚洲经典在线视频 | 欧美性猛交xxxx久久久 | 黄色最新网址 | 精品99久久 | 激情校园亚洲 | 成人av在线资源 | gai视频在线观看免费网站 | 欧美精品一区二区视频 | 777片理伦片在线观看 | 涩涩涩在线视频 | 色哟哟国产精品 | 中文字幕日本精品 | 91精品国产一区 | 中文字幕导航 | 欧美日韩xx | 国产日韩av在线播放 | 打屁股外国网站 | av手机在线观看 | 松本一香在线播放 | 一区二区自拍 | 久久久久国产精品免费 | 写真片福利在线播放 | 欧美激情va永久在线播放 | 女同性做受全过程动图 | 亚洲婷婷影院 | 成人免费不卡视频 | 国产视频网站免费观看 | av丝袜制服 | 日韩美女啪啪 | 日韩精品1区| 高h视频在线免费观看 | 欧美日韩中文在线观看 | 91网在线看 | 欧美日韩国产一区二区三区 | 亚洲另类自拍 | 久久久久免费观看 | 2019中文字幕在线观看 | 女神尿奴喝尿vk | 香蕉91视频| 免费18网站 | 国产精品久久久久久久久久久久久久 | 国产影音先锋 | 欧美日韩一二三四五区 | 午夜色福利 | 日韩视频在线一区二区三区 | 亚洲 欧美 日韩 成人 | 欧美成人一区二区三区片免费 | 国产亚洲成av人在线观看导航 | 欧美高清在线视频 | av在线播放网址 | 最新av在线 | 免费观看在线黄色网 | 最近最经典中文mv字幕 | 99视频精品在线 | 日韩欧美视频 | 国产精品av久久久久久麻豆网 | 国产精品 欧美精品 | 日韩精品 电影一区 亚洲 | 免费观看日本视频 | 欧美,日韩,国产精品免费观看 | 国产精品美女久久久久av超清 | 午夜天堂精品久久久久 | 黄毛片在线观看 | 办公室摸腿吻胸激情视频 | 欧美在线观看网站 | 亚洲精品乱码久久久久久按摩观 | 天天爱天天操天天射 | 久久久久久久一区二区三区 | 日韩伦理福利 | 新婚夫妇白天啪啪自拍 | www.黄在线观看 | 色福利网站 | 一区二区三区在线观看视频 | 日本一道本 | 扒下小娇妻的内裤打屁股 | 天天爽夜夜操 | 福利网站在线 | 久久大片网站 | 深田咏美av在线 | 沟厕沟厕近拍高清视频 | 涩涩网站在线观看 | 欧美精品一卡 | 麻豆成人av| 第一福利在线视频 | 中文字幕第二页 | 国产高清在线 | 亚洲午夜精品久久久久久久久 | 97色综合 | 国产精品日韩欧美大师 | av有码在线观看 | 久久色宗合 | 91亚洲男人天堂 | av2014天堂| 久久精品视频免费播放 | 欧美系列一区二区 | 在线播放91灌醉迷j高跟美女 | 你懂得在线观看 | 韩国精品久久久 | 亚洲国产精华液网站w | eeuss鲁片一区二区三区在线观看 | 欧美色图五月天 | 亚洲精品免费一区二区三区 | 日韩欧美三区 | 亚洲欧美网站 | 在线色综合 | av网站在线看 | heyzo在线播放 | 国产区在线看 | av在线免费网站 | 两个小y头稚嫩紧窄h文 | 老司机午夜精品视频 | 国产精品一区二区三区免费视频 | 精品人伦一区二区三区 | 韩国私人影院 | 日韩电影免费在线观看中文字幕 | 黄色链接视频 | 亚洲欧美日韩第一区 | 麻豆91精品视频 | 国产精品久久久久久久久晋中 | 亚洲黄网站在线观看 | 亚洲人体视频 | 日本中文字幕在线观看视频 | 国产91免费| av激情片 | 岛国av免费在线观看 | 黄色片在线看 | 亚洲电影中文字幕 | 午夜色在线观看 | 999久久精品 | 色偷偷人人澡 |